From e562a4a54dc0809e3e676d8a56712e0d6af8619a Mon Sep 17 00:00:00 2001 From: hyungmin-oh Date: Tue, 2 Jun 2026 14:40:54 +0900 Subject: [PATCH 1/7] =?UTF-8?q?docs:=20feature/4321=20=ED=99=98=EA=B2=BD?= =?UTF-8?q?=EB=B3=84=20API=20=EA=B0=80=EC=9D=B4=EB=93=9C=20=EB=8F=99?= =?UTF-8?q?=EA=B8=B0=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - nc-rds feature/4321 의 API 가이드 생성기 출력으로 ko/api-guide-v3.0*, v4.0* 갱신 - 백업 복제 리전(replicationRegion)/리전 코드 노출을 (engine × realm) 가용 리전으로 정합화 - public: KR1/KR2/JP1, gov·ncgn: KR1, ngovc·ngoic·ngsc·ninc: KR4 - 기존 gov/ncgn 가이드의 잘못된 KR2/JP1 노출 제거 - 생성기 기준으로 전체 재생성하여 포맷/문구 차이 포함 --- ko/api-guide-v3.0-gov.md | 4800 +++++++++++++++------------- ko/api-guide-v3.0-ncgn.md | 4800 +++++++++++++++------------- ko/api-guide-v3.0-ngoic.md | 4805 +++++++++++++++------------- ko/api-guide-v3.0-ngovc.md | 4805 +++++++++++++++------------- ko/api-guide-v3.0-ngsc.md | 4805 +++++++++++++++------------- ko/api-guide-v3.0-ninc.md | 4805 +++++++++++++++------------- ko/api-guide-v3.0.md | 4798 +++++++++++++++------------- ko/api-guide-v4.0-gov.md | 6084 +++++++++++++++++------------------ ko/api-guide-v4.0-ncgn.md | 6084 +++++++++++++++++------------------ ko/api-guide-v4.0-ngoic.md | 5765 ++++++++++++++++++--------------- ko/api-guide-v4.0-ngovc.md | 5765 ++++++++++++++++++--------------- ko/api-guide-v4.0-ngsc.md | 5765 ++++++++++++++++++--------------- ko/api-guide-v4.0-ninc.md | 5765 ++++++++++++++++++--------------- ko/api-guide-v4.0.md | 6126 ++++++++++++++++++------------------ 14 files changed, 39768 insertions(+), 35204 deletions(-) diff --git a/ko/api-guide-v3.0-gov.md b/ko/api-guide-v3.0-gov.md index 244818ff..2cb54f64 100644 --- a/ko/api-guide-v3.0-gov.md +++ b/ko/api-guide-v3.0-gov.md @@ -1,39 +1,30 @@ ## Database > RDS for MySQL > API 가이드 -## RDS for MySQL API 공통 정보 -### API 엔드포인트 -| 리전 | 엔드포인트 | -|-----------|-----------------------------------------------| -| 한국(판교) 리전 | https://kr1-rds-mysql.api.gov-nhncloudservice.com | +## RDS for MySQL API 공통 정보 ### 인증 및 권한 -RDS for MySQL API를 사용하려면 User Access Key가 필요합니다. User Access Key는 NHN Cloud 계정 또는 IAM 계정을 기반으로 발급되는 인증 키로, Secret Access Key와 함께 사용하여 API 요청에 대한 인증 수단으로 활용됩니다. +RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. +발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. -User Access Key와 Secret Access Key는 콘솔의 **API 보안 설정**에서 발급할 수 있습니다. User Access Key 발급 및 사용에 대한 자세한 내용은 [User Access Key](/nhncloud/ko/public-api/user-access-key)를 참고하세요. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | +| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | -생성된 Key는 Appkey와 함께 요청 Header에 포함해야 합니다. +또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------|--------|--------|----|-------------------------------------------------------------| -| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-TC-AUTHENTICATION-ID | Header | String | O | API 보안 설정 메뉴의 User Access Key ID | -| X-TC-AUTHENTICATION-SECRET | Header | String | O | API 보안 설정 메뉴의 Secret Access Key | - - -또한 프로젝트 멤버 역할에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER`로 구분하여 권한을 부여할 수 있습니다. - -* `RDS for MySQL ADMIN` 권한은 모든 기능을 사용 가능합니다. -* `RDS for MySQL VIEWER` 권한은 정보를 조회하는 기능만 사용 가능합니다. +* `RDS for MySQL ADMIN` 역할은 API 실행에 필요한 모든 권한이 부여됩니다. +* `RDS for MySQL VIEWER` 역할은 정보를 조회하는 권한만 부여됩니다. * DB 인스턴스를 생성, 수정, 삭제하거나, DB 인스턴스를 대상으로 하는 어떠한 기능도 사용할 수 없습니다. - * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용 가능합니다. + * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용할 수 있습니다. API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같은 오류가 발생합니다. -| resultCode | resultMessage | 설명 | -|------------|---------------|-------------| -| 80401 | Unauthorized | 인증에 실패했습니다. | -| 80403 | Forbidden | 권한이 없습니다. | +| resultCode | resultMessage | 설명 | +|------------|---------------|-----| +| 80401 | Unauthorized | 인증에 실패했습니다. | +| 80403 | Forbidden | 권한이 없습니다. | ### 응답 공통 정보 @@ -51,52 +42,66 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 ``` #### 필드 -| 이름 | 형식 | 설명 | -|---------------|---------|-----------------------------------------| -| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | -| resultMessage | String | 결과 메시지 | -| isSuccessful | Boolean | 성공 여부 | +| 이름 | 형식 | 설명 | +|-----|-----|-----| +| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | +| resultMessage | String | 결과 메시지 | +| isSuccessful | Boolean | 성공 여부 | + +### API 엔드포인트 +| 리전 | 엔드포인트 | +|------|----------| +| 한국(판교) 리전 | https://kr1-rds-mysql.api.gov-nhncloudservice.com | ### DB 엔진 유형 -| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 정보 | -|--------------|----------|-----------------|--------| -| MYSQL\_V5633 | X | X | NATIVE | -| MYSQL\_V5715 | O | O | NATIVE | -| MYSQL\_V5719 | O | O | NATIVE | -| MYSQL\_V5726 | O | O | NATIVE | -| MYSQL\_V5731 | X | X | NATIVE | -| MYSQL\_V5733 | O | X | NATIVE, SHA256 | -| MYSQL\_V5737 | O | O | NATIVE, SHA256 | -| MYSQL\_V8018 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8023 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8028 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8032 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8033 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8034 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8405 | O | O | CACHING_SHA2 | -| MYSQL_V8406 | O | O | CACHING_SHA2 | -| MYSQL_V8407 | O | O | CACHING_SHA2 | -| MYSQL_V8408 | O | O | CACHING_SHA2 | +| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | +|------------|----------|------------------|------------| +| MYSQL_V5633 | X | X | NATIVE | +| MYSQL_V5715 | O | O | NATIVE | +| MYSQL_V5719 | O | O | NATIVE | +| MYSQL_V5726 | O | O | NATIVE | +| MYSQL_V5731 | X | X | NATIVE | +| MYSQL_V5733 | O | X | NATIVE, SHA256 | +| MYSQL_V5737 | O | O | NATIVE, SHA256 | +| MYSQL_V8018 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8023 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8028 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8032 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8033 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8034 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8405 | O | O | CACHING_SHA2 | +| MYSQL_V8406 | O | O | CACHING_SHA2 | +| MYSQL_V8407 | O | O | CACHING_SHA2 | +| MYSQL_V8408 | O | O | CACHING_SHA2 | * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## 프로젝트 정보 +## DB 보안 그룹 -### 리전 목록 보기 +### DB 보안 그룹 진행 상태 + +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | + +### DB 보안 그룹 목록 보기 ```http -GET /v3.0/project/regions +GET /v3.0/db-security-groups ``` #### 요청 @@ -105,11 +110,15 @@ GET /v3.0/project/regions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------|------|---------|----------------------------------------------------------------------------| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -121,63 +130,51 @@ GET /v3.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ - { - "regionCode": "KR1", - "isEnabled": true - }, - { - "regionCode": "KR2", - "isEnabled": true - }, + "dbSecurityGroups": [ { - "regionCode": "JP1", - "isEnabled": true + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } ``` +

--- -### 프로젝트 멤버 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v3.0/project/members +POST /v3.0/db-security-groups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|--------|-----------------| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ { - "memberId": "1b1d3627-507a-49ea-8cb7-c86dfa9caa58", - "memberName": "홍길동", - "emailAddress": "gildong.hong@nhn.com", - "phoneNumber": "+821012345678" + "description": "description-example" } ] } @@ -186,29 +183,11 @@ GET /v3.0/project/members

---- - -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 - -```http -GET /v3.0/db-flavors -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -220,14 +199,7 @@ GET /v3.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbFlavorName": "m2.c1m2", - "ram": 2048, - "vcpus": 1 - } - ] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -236,76 +208,63 @@ GET /v3.0/db-flavors --- -## 네트워크 - -### 서브넷 목록 보기 +### DB 보안 그룹 삭제하기 ```http -GET /v3.0/network/subnets +DELETE /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|---------|------------------| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | UUID | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | - -

예시 -

+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "subnets": [ - { - "subnetId": "1b2a9b23-0725-4b92-8c78-35db66b8ad9f", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/24", - "usingGateway": true, - "availableIpCount": 240 - } - ] -} -``` +#### 응답 -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -## DB 엔진 - -### DB 엔진 목록 보기 +### DB 보안 그룹 상세 보기 ```http -GET /v3.0/db-versions +GET /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|---------|-----------------------| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroup | Body | Object | DB 보안 그룹 | +| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | +| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | +| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | +| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | +| dbSecurityGroup.rules.cidr | Body | String | CIDR | +| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | +| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -317,13 +276,19 @@ GET /v3.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ - { - "dbVersion": "MYSQL_V8028", - "dbVersionName": "MySQL 8.0.28", - "restorableFromObs": true - } - ] + "dbSecurityGroup": { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -332,61 +297,59 @@ GET /v3.0/db-versions --- -## 데이터 스토리지 - -### 데이터 스토리지 타입 목록 보기 +### DB 보안 그룹 수정하기 ```http -GET /v3.0/storage-types +PUT /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|-------|----------------| -| storageTypes | Body | Array | 데이터 스토리지 타입 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "storageTypes": [ - "General SSD", - "General HDD" - ] + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 데이터 스토리지 목록 보기 +### DB 보안 그룹 규칙 삭제하기 ```http -GET /v3.0/storages +DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------|------|-------|-------------| -| storages | Body | Array | 데이터 스토리지 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -398,10 +361,7 @@ GET /v3.0/storages "resultMessage": "SUCCESS", "isSuccessful": true }, - "storages": [ - "General SSD", - "General HDD" - ] + "jobId": "jobId-example" } ``` @@ -410,50 +370,51 @@ GET /v3.0/storages --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### DB 보안 그룹 규칙 생성하기 ```http -GET /v3.0/jobs/{jobId} +POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------|-----|------|----|---------| -| jobId | URL | UUID | O | 작업의 식별자 | +

예시 +

+ +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------|------|----------|-----------------------------------| -| jobId | Body | UUID | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태 | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | Enum | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | UUID | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -465,16 +426,7 @@ GET /v3.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "0ddb042c-5af6-43fb-a914-f4dd0540eb7c", - "jobStatus": "RUNNING", - "resourceRelations": [ - { - "resourceType": "DB_INSTANCE", - "resourceId": "56b39dcf-65eb-47ec-9d4f-09f160ba2266" - } - ], - "createdYmdt": "2023-02-22T20:47:12+09:00", - "updatedYmdt": "2023-02-22T20:49:46+09:00" + "jobId": "jobId-example" } ``` @@ -483,27 +435,52 @@ GET /v3.0/jobs/{jobId} --- -## DB 인스턴스 그룹 - -### DB 인스턴스 그룹 목록 보기 +### DB 보안 그룹 규칙 수정하기 ```http -GET /v3.0/db-instance-groups +PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | + +

예시 +

+ +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------|------|----------|--------------------------------------------------------------------------| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -515,14 +492,7 @@ GET /v3.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ - { - "dbInstanceGroupId": "05de0746-89fd-49c8-94f9-9c5b1df97009", - "replicationType": "STANDALONE", - "createdYmdt": "2023-02-13T17:35:20+09:00", - "updatedYmdt": "2023-02-13T17:35:20+09:00" - } - ] + "jobId": "jobId-example" } ``` @@ -531,32 +501,26 @@ GET /v3.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v3.0/db-instance-groups/{dbInstanceGroupId} +GET /v3.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|-----------------| -| dbInstanceGroupId | URL | UUID | O | DB 인스턴스 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |

예시

@@ -568,17 +532,11 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "36617a8e-0df8-4b16-b6ea-6306019e95da", - "replicationType": "STANDALONE", - "dbInstances": [ + "dbVersions": [ { - "dbInstanceId": "6d2db0ef-fe9b-4ed4-97b1-d97fcb4cf1b8", - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE" + "restorableFromObs": false } - ], - "createdYmdt": "2023-03-03T17:38:14+09:00", - "updatedYmdt": "2023-03-03T17:38:14+09:00" + ] } ``` @@ -611,8 +569,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | `BACKING_UP` | 백업 중 | | `CANCELING` | 취소 중 | | `CREATING` | 생성 중 | -| `CREATING_SCHEMA` | DB 스키마 생성 중 | -| `CREATING_USER` | 사용자 생성 중 | +| `CREATING_SCHEMA` | DB 스키마 생성 중 | +| `CREATING_USER` | 사용자 생성 중 | | `DELETING` | 삭제 중 | | `DELETING_SCHEMA` | DB 스키마 삭제 중 | | `DELETING_USER` | 사용자 삭제 중 | @@ -631,8 +589,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | `STARTING` | 시작 중 | | `STOPPING` | 정지 중 | | `SYNCING_SCHEMA` | DB 스키마 동기화 중 | -| `SYNCING_USER` | 사용자 동기화 중 | -| `UPDATING_USER` | 사용자 수정 중 | +| `SYNCING_USER` | 사용자 동기화 중 | +| `UPDATING_USER` | 사용자 수정 중 | ### DB 인스턴스 목록 보기 @@ -646,20 +604,20 @@ GET /v3.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | -| dbInstances.dbPort | Body | Number | DB 포트 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태 | -| dbInstances.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstances.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstances | Body | Array | DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | +| dbInstances.dbPort | Body | Number | DB 포트 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbInstances.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstances.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -673,17 +631,7 @@ GET /v3.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "createdYmdt": "2023-01-23T12:03:13+09:00", - "updatedYmdt": "2023-02-02T17:20:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -694,44 +642,104 @@ GET /v3.0/db-instances --- -### DB 인스턴스 상세 보기 +### DB 인스턴스 생성하기 ```http -GET /v3.0/db-instances/{dbInstanceId} +POST /v3.0/db-instances ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| authenticationPlugin | Body | Enum | X | 인증 Plugin
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | TLS Option
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE", + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| dbPort | Body | Number | DB 포트 | -| dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| progressStatus | Body | Enum | DB 인스턴스의 현재 작업 진행 상태 | -| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | -| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | -| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | -| supportAuthenticationPlugin | Body | Boolean | 인증 플러그인 지원 여부 | -| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | -| needMigration | Body | Boolean | 마이그레이션 필요 여부 | -| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -743,26 +751,7 @@ GET /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "dbFlavorId": "e9ed4ef6-78d7-46fa-ace9-32481e97f3b7", - "parameterGroupId": "b03e8b13-de27-4d04-a488-ff5689589372", - "dbSecurityGroupIds": ["01908c35-d2c9-4852-baf0-17f06ec42c03"], - "notificationGroupIds": ["83a62a33-ddbf-4a04-8653-e54463d5b1ac"], - "useDeletionProtection": false, - "supportAuthenticationPlugin": true, - "needToApplyParameterGroup": false, - "needMigration": false, - "supportDbVersionUpgrade": true, - "createdYmdt": "2022-11-23T12:03:13+09:00", - "updatedYmdt": "2022-12-02T17:20:17+09:00" + "jobId": "jobId-example" } ``` @@ -771,84 +760,442 @@ GET /v3.0/db-instances/{dbInstanceId} --- -### DB 인스턴스 생성하기 +### 오브젝트 스토리지를 이용한 DB 인스턴스 복원 ```http -POST /v3.0/db-instances +POST /v3.0/db-instances/restore-from-obs ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|---------------------------------------------------------------------| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbUserName | Body | String | O | DB 사용자 계정명 | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- 기본값: `NATIVE`(미지원 시 `CACHING_SHA2`)
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| imageId | Body | UUID | X | 이미지의 식별자 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | +| restore.username | Body | String | O | NHN Cloud 계정 혹은 IAM 멤버 ID | +| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | +| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | +| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "dbVersion": "ENUM_VALUE", + "useHighAvailability": false, + "imageId": "550e8400-e29b-41d4-a716-446655440000", + "pingInterval": 3, "storage": { - "storageType": "General SSD", + "storageType": "ENUM_VALUE", "storageSize": 20 }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, "backup": { - "backupPeriod": 1, + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": true, "backupSchedules": [ { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR" + "backupWndDuration": "HALF_AN_HOUR" } ] - } + }, + "restore": { + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" + }, + "useDefaultNotification": false, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 인스턴스 삭제하기 + +```http +DELETE /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 상세 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| dbPort | Body | Number | DB 포트 | +| dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | +| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | +| supportAuthenticationPlugin | Body | Boolean | 인증 plugin 지원 여부 | +| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | +| needMigration | Body | Boolean | 마이그레이션 필요 여부 | +| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "dbFlavorId": "dbFlavorId-example", + "parameterGroupId": "parameterGroupId-example", + "dbSecurityGroupIds": [], + "notificationGroupIds": [], + "useDeletionProtection": false, + "supportAuthenticationPlugin": false, + "needToApplyParameterGroup": false, + "needMigration": false, + "supportDbVersionUpgrade": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ +--- + +### DB 인스턴스 수정하기 + +```http +PUT /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbVersion | Body | Enum | X | DB 엔진 버전 코드 | +| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
- 기본값: `false` | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbPort": 1, + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "useDummy": false, + "dbSecurityGroupIds": [], + "executeBackup": false, + "useOnlineFailover": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 백업하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/backup +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "backupName": "backupName" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 백업 정보 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backupPeriod | Body | Number | 백업 보관 기간(일) | +| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | +| backupRetryCount | Body | Number | 백업 재시도 횟수 | +| replicationRegion | Body | Enum | 백업 복제 리전
- KR1: `한국(판교)` | +| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration
- HALF_AN_HOUR
- ONE_HOUR
- ONE_HOUR_AND_HALF
- TWO_HOURS
- TWO_HOURS_AND_HALF
- THREE_HOURS | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "backupPeriod": 1, + "ftwrlWaitTimeout": 1, + "backupRetryCount": 1, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +--- + +### 백업 정보 수정하기 + +```http +PUT /v3.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +
예시 +

+ +```json +{ + "backupPeriod": 0, + "ftwrlWaitTimeout": 0, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] } ``` @@ -857,45 +1204,325 @@ POST /v3.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 오브젝트 스토리지로 백업 + +```http +POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | + +
예시 +

+ +```json +{ + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 테스트 용 DB 이미지 메타 변경 + +```http +PUT /v3.0/db-instances/{dbInstanceId}/change-image-meta +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 스키마 목록 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSchemas | Body | Array | DB 스키마 목록 | +| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | +| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | +| dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbSchemas": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### DB 스키마 생성하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbSchemaName | Body | String | O | DB 스키마 이름
- 최대 길이: `64`
- 영문 시작, 영문/숫자/_ 허용, 1~64자, MySQL 예약어 불가 | + +
예시 +

+ +```json +{ + "dbSchemaName": "dbSchemaName-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 스키마 삭제하기 + +```http +DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbSchemaId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 사용자 목록 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/db-users +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbUsers | Body | Array | DB 사용자 목록 | +| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | +| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | +| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- STABLE
- CREATING
- UPDATING
- SYNCING
- DELETING
- DELETED | +| dbUsers.createdYmdt | Body | DateTime | 생성 일시 | +| dbUsers.updatedYmdt | Body | DateTime | 수정 일시 | +| dbUsers.authenticationPlugin | Body | Enum | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| dbUsers.tlsOption | Body | Enum | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbUsers": [ + { + "tlsOption": "NONE" + } + ] +} +``` + +

+
--- -### DB 인스턴스 수정하기 +### DB 사용자 생성하기 ```http -PUT /v3.0/db-instances/{dbInstanceId} +POST /v3.0/db-instances/{dbInstanceId}/db-users ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|--------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbPort | Body | Number | X | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbVersion | Body | Enum | X | DB 엔진 유형 | -| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
기본값: `false` | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| host | Body | String | O | DB 사용자 계정의 호스트명
- 최대 길이: `45` | +| authorityType | Body | Enum | O | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |
예시

```json { - "dbInstanceName": "db-instance2", - "description": "description2", - "dbPort": 10001, - "dbSecurityGroupIds": [], - "executeBackup": true + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "host": "host-example", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" } ``` @@ -904,70 +1531,106 @@ PUT /v3.0/db-instances/{dbInstanceId} #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### DB 인스턴스 삭제하기 +### DB 사용자 삭제하기 ```http -DELETE /v3.0/db-instances/{dbInstanceId} +DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | ---- - -### DB 인스턴스 재시작하기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/restart +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} ``` -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +

+
-#### 응답 +--- -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +### DB 사용자 수정하기 ---- -### DB 인스턴스 강제 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/force-restart +PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserId | URL | UUID | O | | +| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| authorityType | Body | Enum | X | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "dbPassword": "dbPassword", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` +

+
#### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -978,282 +1641,228 @@ POST /v3.0/db-instances/{dbInstanceId}/force-restart "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ```

- --- -### DB 인스턴스 시작하기 +### DB 인스턴스 삭제 보호 설정 변경 ```http -POST /v3.0/db-instances/{dbInstanceId}/start +PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | + +
예시 +

+ +```json +{ + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 정지하기 +### DB 인스턴스 강제 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/stop +POST /v3.0/db-instances/{dbInstanceId}/force-restart ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 백업하기 +### 고가용성 수정하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/backup +PUT /v3.0/db-instances/{dbInstanceId}/high-availability ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|-----------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupName | Body | String | O | 백업을 식별할 수 있는 이름 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -### DB 인스턴스 백업 후 내보내기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage +```json +{ + "useHighAvailability": false, + "pingInterval": 1 +} ``` -#### 요청 +

+
+ +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 복제하기 +### 고가용성 일시 중지하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/replicate +POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록
- 기본값: 원본 DB 인스턴스 값 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: 원본 DB 인스턴스 값 | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전
- 기본값: 원본 DB 인스턴스 값 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00`
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간
- 기본값: 원본 DB 인스턴스 값 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance-replicate", - "description": "description", - "dbPort": 11000, - "network": { - "availabilityZone": "kr-pub-a" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "storage": { - "stroageSize": 100 - } + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 승격하기 +### 고가용성 복구하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/promote +POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### 복원 정보 조회 +### 고가용성 다시 시작하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/restoration-info +POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | -| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | -| restorableBackups | Body | Array | 복원 가능한 백업 목록 | -| restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | -| restorableBackups.backup.backupName | Body | String | 백업 이름 | -| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | -| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동 | -| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- `BACKING_UP`: 백업 중인 경우
- `COMPLETED`: 백업이 완료된 경우
- `DELETING`: 백업이 삭제 중인 경우
- `DELETED`: 백업이 삭제된 경우
- `ERROR`: 오류가 발생한 경우 | -| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| restorableBackups.backup.dbVersion | Body | String | DB 엔진 유형 | -| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | -| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | -| restorableBackups.backup.binLogPosition | Body | Number | 바이너리 로그 파일 위치 | -| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | -| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | -| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "oldestRestorableYmdt": "2023-07-09T16:33:33+09:00", - "latestRestorableYmdt": "2023-07-10T15:44:44+09:00", - "restorableBackups": [ - { - "backup": { - "backupId": "145d889a-fe08-474f-8f58-bde576ff96a9", - "backupName": "example-backup-name", - "backupStatus": "COMPLETED", - "dbInstanceId": "dba1be25-9429-4589-9716-7fb6daad7cb9", - "dbInstanceName": "original-db-instance-name", - "dbVersion": "MYSQL_V8028", - "backupType": "MANUAL", - "backupSize": 8299904, - "useBackupLock": true, - "failoverCount": 0, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 367916037, - "createdYmdt": "2023-07-10T15:44:44+09:00", - "updatedYmdt": "2023-07-10T15:46:07+09:00" - }, - "restorableBinLogs": [ - "mysql-bin.000001" - ] - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ``` @@ -1262,39 +1871,25 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info --- -### 복원될 마지막 쿼리 조회 +### 고가용성 분리하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query +POST /v3.0/db-instances/{dbInstanceId}/high-availability/split ``` -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|------|----|-----------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restoreType | Query | Enum | O | 복원 타입 종류
- `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
- `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입 | - -#### restoreType이 `TIMESTAMP`인 경우 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-------|----------|----|-------------------------------------------| -| restoreYmdt | Query | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +#### 요청 -#### restoreType이 `BINLOG`인 경우 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------|-------|--------|----|--------------------| -| backupId | Query | UUID | O | 복원에 사용할 백업의 식별자 | -| binLogFileName | Query | String | O | 복원에 사용할 바이너리 로그 이름 | -| binLogPosition | Query | Number | O | 복원에 사용할 바이너리 로그 위치 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|----------|--------------------------------------| -| executedYmdt | Body | DateTime | 쿼리 수행 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| lastQuery | Body | String | 마지막 수행 쿼리 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -1306,8 +1901,7 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query "resultMessage": "SUCCESS", "isSuccessful": true }, - "executedYmdt": "2023-03-17T14:02:29+09:00", - "lastQuery": "INSERT INTO `test`.`test`SET @1='0123'" + "jobId": "jobId-example" } ``` @@ -1316,303 +1910,189 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query --- -### 복원 +### 로그 파일 목록 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/restore +GET /v3.0/db-instances/{dbInstanceId}/log-files ``` -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restore | Body | Object | O | 복원 정보 객체 | -| restore.restoreType | Body | Enum | O | 복원 타입 종류
- `TIMESTAMP`: 복원 가능 시간 범위 내의 특정 시각으로 시점 복원
- `BINLOG`: 복원 가능한 바이너리 로그 위치를 지정하여 시점 복원
- `BACKUP`: 기존에 생성한 백업을 이용하여 스냅숏 복원 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | +이 API는 요청 본문을 요구하지 않습니다. -#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|----------|----|------------------------------------------------------------------------------------------------| -| restore.restoreYmdt | Body | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD)
복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능하다. | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| logFiles | Body | Array | 로그 파일 목록 | +| logFiles.logFileName | Body | String | 로그 파일 이름 | +| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- ERROR
- BINLOG
- GENERAL
- SLOW_QUERY
- AUDIT
- BACKUP | +| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | +| logFiles.createdYmdt | Body | DateTime | 생성 일시 |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "TIMESTAMP", - "restoreYmdt": "2023-07-10T15:44:44+09:00" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "logFiles": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) +--- + +### 로그 파일 내보내기 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------------|------|--------|----|--------------------| -| restore.backupId | Body | UUID | O | 복원에 사용할 백업의 식별자 | -| restore.binLog | Body | Object | O | 바이너리 로그 정보 객체 | -| restore.binLog.binLogFileName | Body | String | O | 복원에 사용할 바이너리 로그 이름 | -| restore.binLog.binLogPosition | Body | Number | O | 복원에 사용할 바이너리 로그 위치 | +```http +POST /v3.0/db-instances/{dbInstanceId}/log-files/export +``` -* 바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. +#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| logFileNames | Body | Array | O | 로그 파일 이름 목록 | +| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BINLOG", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36", - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 1234567 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "logFileNames": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

-#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|------|------------------------------|-----------------| -| restore.backupId | Body | UUID | O(restoreType이 `BACKUP`인 경우) | 복원에 사용할 백업의 식별자 | - +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BACKUP", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

+--- + +### 네트워크 정보 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/network-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | +| subnet | Body | Object | 서브넷 객체 | +| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnet.subnetCidr | Body | String | 서브넷의 CIDR | +| endPoints | Body | Array | 접속 정보 목록 | +| endPoints.domain | Body | String | 도메인 | +| endPoints.ipAddress | Body | String | IP 주소 | +| endPoints.endPointType | Body | String | 접속 정보 타입 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "availabilityZone": "availabilityZone-example", + "subnet": { + "subnetId": "subnetId-example", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example" + }, + "endPoints": [ + { + "endPointType": "endPointType-example" + } + ] +} +``` +

+
--- -### 오브젝트 스토리지로부터 복원 +### 네트워크 정보 수정하기 ```http -POST /v3.0/db-instances/restore-from-obs +PUT /v3.0/db-instances/{dbInstanceId}/network-info ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------| -| restore | Body | Object | O | 복원 정보 객체 | -| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | -| restore.username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | -| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | -| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | - - +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbVersion": "MYSQL_V8028", - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "tenantId":"tenant-id", - "username":"username", - "password":"password", - "targetContainer":"targetContainer", - "objectPath":"objectPath" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "usePublicAccess": false } ``` @@ -1621,30 +2101,48 @@ POST /v3.0/db-instances/restore-from-obs #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +

예시 +

---- +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+--- -### DB 인스턴스 삭제 보호 설정 변경하기 +### DB 인스턴스 승격하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection +POST /v3.0/db-instances/{dbInstanceId}/promote ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1655,7 +2153,8 @@ PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ``` @@ -1664,137 +2163,203 @@ PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection --- -### 고가용성 수정하기 +### DB 인스턴스 복제하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/high-availability +POST /v3.0/db-instances/{dbInstanceId}/replicate ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|---------|----|------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부 | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | X | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | X | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | X | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | ---- - -### 고가용성 다시 시작하기 +

예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} ``` -#### 요청 +

+
-이 API는 요청 본문을 요구하지 않습니다. +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | -#### 응답 +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 고가용성 일시 중지하기 +### DB 인스턴스 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause +POST /v3.0/db-instances/{dbInstanceId}/restart ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | -### 고가용성 복구하기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair +```json +{ + "useOnlineFailover": false, + "executeBackup": false, + "waitReplicationDelay": false, + "useReadOnly": false +} ``` -#### 요청 +

+
-이 API는 요청 본문을 요구하지 않습니다. +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | -#### 응답 +
예시 +

-| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### 고가용성 분리하기 +### DB 인스턴스 복원 정보 조회 ```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/split +GET /v3.0/db-instances/{dbInstanceId}/restoration-info ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 데이터 스토리지 정보 보기 +### 복원될 마지막 쿼리 조회 ```http -GET /v3.0/db-instances/{dbInstanceId}/storage-info +GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------|------|--------|--------------------------------------------------------------------------------------| -| storageType | Body | Enum | 데이터 스토리지 타입 | -| storageSize | Body | Number | 데이터 스토리지 크기(GB) | -| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- `DETACHED`: 부착되지 않음
- `ATTACHED`: 부착됨
- `DELETED`: 삭제됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| executedYmdt | Body | DateTime | 쿼리 수행 일시 | +| lastQuery | Body | String | 마지막 수행 쿼리 |
예시

@@ -1806,66 +2371,142 @@ GET /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "General SSD", - "storageSize": 20, - "storageStatus": "ATTACHED" + "executedYmdt": "2023-12-31T15:00:00+09:00", + "lastQuery": "lastQuery-example" } ```

- --- -### 데이터 스토리지 정보 수정하기 +### DB 인스턴스 복원 ```http -PUT /v3.0/db-instances/{dbInstanceId}/storage-info +POST /v3.0/db-instances/{dbInstanceId}/restore ``` -#### 요청 +#### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: 현재값
- 최댓값: `2048` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| imageId | Body | UUID | X | 이미지의 식별자 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.restoreType | Body | Enum | O | 복원 타입
- TIMESTAMP: `복원 가능한 시간 이내의 시간을 이용한 시점 복원`
- BINLOG: `복원 가능한 바이너리 로그 위치를 이용한 시점 복원`
- BACKUP: `기존에 생성한 백업을 이용한 스냅숏 복원` | +| restore.binLog.binLogFileName | Body | String | X | 복원에 사용할 바이너리 로그 이름 | +| restore.binLog.binLogPosition | Body | Object | X | 복원에 사용할 바이너리 로그 위치 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -#### 응답 +#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.restoreYmdt | Body | DateTime | X | DB 인스턴스 복원 일시 | ---- +복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. -### 백업 정보 보기 +#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) -```http -GET /v3.0/db-instances/{dbInstanceId}/backup-info -``` +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | +| restore.binLog | Body | Object | X | 복원에 사용할 바이너리 로그 정보 객체 | -#### 요청 +바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. -이 API는 요청 본문을 요구하지 않습니다. +#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "useHighAvailability": false, + "imageId": "550e8400-e29b-41d4-a716-446655440000", + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "restoreType": "TIMESTAMP", + "binLog": { + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + } + } + }, + "useDefaultNotification": false, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|---------|----------------| -| backupPeriod | Body | Number | 백업 보관 기간(일) | -| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | -| backupRetryCount | Body | Number | 백업 재시도 횟수 | -| replicationRegion | Body | Enum | 백업 복제 리전 | -| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | -| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1877,100 +2518,73 @@ GET /v3.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "backupPeriod": 1, - "ftwrlWaitTimeout": 1800, - "backupRetryCount": 0, - "replicationRegion": null, - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] + "jobId": "jobId-example" } ```

- --- -### 백업 정보 수정하기 +### DB 인스턴스 시작하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/backup-info +POST /v3.0/db-instances/{dbInstanceId}/start ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------------------------|------|---------|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "backupPeriod": 5, - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndBgnTime": "01:00:00", - "backupWndDuration": "TWO_HOURS" - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 네트워크 정보 보기 +### DB 인스턴스 정지하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/network-info +POST /v3.0/db-instances/{dbInstanceId}/stop ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------------------------------------------------------------------------------------------------------------------------------| -| availabilityZone | Body | Enum | DB 인스턴스를 생성할 가용성 영역 | -| subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | UUID | 서브넷의 식별자 | -| subnet.subnetName | Body | UUID | 서브넷을 식별할 수 있는 이름 | -| subnet.subnetCidr | Body | UUID | 서브넷의 CIDR | -| endPoints | Body | Array | 접속 정보 목록 | -| endPoints.domain | Body | String | 도메인 | -| endPoints.ipAddress | Body | String | IP 주소 | -| endPoints.endPointType | Body | Enum | 접속 정보 타입
-`EXTERNAL`: 외부 접속 도메인
-`INTERNAL`: 내부 접속 도메인
-`PUBLIC`: (Deprecated) 외부 접속 도메인
-`PRIVATE`: (Deprecated) 내부 접속 도메인 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1982,19 +2596,7 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "kr-pub-a", - "subnet": { - "subnetId": "bd453789-34ae-416c-9f78-05b9e43a46be", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/16" - }, - "endPoints": [ - { - "domain": "ea548a78-d85f-43b4-8ddf-c88d999b9905.internal.kr1.mysql.rds.nhncloudservice.com", - "ipAddress": "192.168.0.2", - "endPointType": "INTERNAL" - } - ] + "jobId": "jobId-example" } ``` @@ -2003,55 +2605,27 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info --- -### 네트워크 정보 수정하기 - -```http -PUT /v3.0/db-instances/{dbInstanceId}/network-info -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 목록 보기 +### 스토리지 정보 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/db-users +GET /v3.0/db-instances/{dbInstanceId}/storage-info ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|-----------------------------------------------------------------------------------------------------------------------------| -| dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | -| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | -| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | -| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `UPDATING`: 수정 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbUsers.authenticationPlugin | Body | Enum | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| dbUsers.tlsOption | Body | Enum | TLS Option
- NONE
- SSL
- X509 | -| dbUsers.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbUsers.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageType | Body | Enum | 데이터 스토리지 타입 | +| storageSize | Body | Number | 데이터 스토리지 크기(GB) | +| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- DELETED: `삭제됨`
- PENDING_DELETION: `삭제 유예됨`
- DELETION_RESERVED: `삭제 예약됨 (스냅샷 정리 대기)`
- DETACHED: `해제됨`
- ATTACHED: `할당됨` |

예시

@@ -2063,19 +2637,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbUsers": [ - { - "dbUserId": "4b3d530b-fd02-4d59-a620-83d019a67bbb", - "dbUserName": "db-user", - "host": "%", - "authorityType": "DDL", - "dbUserStatus": "STABLE", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE", - "createdYmdt": "2023-03-17T14:02:29+09:00", - "updatedYmdt": "2023-03-17T14:02:31+09:00" - } - ] + "storageType": "ENUM_VALUE", + "storageSize": 1, + "storageStatus": "DELETED" } ``` @@ -2084,38 +2648,25 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users --- -### DB 사용자 생성하기 +### 스토리지 정보 수정하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/db-users +PUT /v3.0/db-instances/{dbInstanceId}/storage-info ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserName | Body | String | O | DB 사용자 계정 이름
- 최소 길이: `1`
- 최대 길이: `32` | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| host | Body | String | O | DB 사용자 계정의 호스트명
- 예시: `1.1.1.%` | -| authorityType | Body | Enum | O | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- 기본값: `NATIVE`(미지원 시 `CACHING_SHA2`)
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | - -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 설정할 수 있습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최댓값: `2048` |

예시

```json { - "dbUserName": "db-user", - "dbPassword": "password", - "host": "1.1.1.%", - "authorityType": "CRUD", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE" + "storageSize": 1 } ``` @@ -2124,99 +2675,50 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 수정하기 - -```http -PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | -| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| authorityType | Body | Enum | X | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | - -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 수정할 수 있습니다. -> `authenticationPlugin`의 값은 `dbPassword`와 동시에 수정을 해야 합니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

```json { - "authorityType": "DDL" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 삭제하기 - -```http -DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +## DB 인스턴스 그룹 -### DB 스키마 목록 보기 +### DB 인스턴스 그룹 목록 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/db-schemas +GET /v3.0/db-instance-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|------------------------------------------------------------------------------------------------------| -| dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | -| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | -| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbSchemas.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2228,12 +2730,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSchemas": [ + "dbInstanceGroups": [ { - "dbSchemaId": "7c9a94b8-86c1-435d-8af2-82a5e9d53fd4", - "dbSchemaName": "schema", - "dbSchemaStatus": "STABLE", - "createdYmdt": "2023-03-20T13:37:45+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2244,75 +2743,81 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas --- -### DB 스키마 생성하기 +### DB 인스턴스 그룹 상세 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/db-schemas +GET /v3.0/db-instance-groups/{dbInstanceGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaName | Body | String | O | DB 스키마 이름 | +이 API는 요청 본문을 요구하지 않습니다. -#### 응답 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +#### 응답 ---- +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | -### DB 스키마 삭제하기 +

예시 +

-```http -DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} ``` -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 로그 파일 목록 보기 +## DB 인스턴스 사양 + +### DB 인스턴스 사양 목록 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/log-files +GET /v3.0/db-flavors ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|-------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileTypes | Query | Array | X | 로그 파일 타입 종류 목록
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| logFiles | Body | Array | 로그 파일 목록 | -| logFiles.logFileName | Body | String | 로그 파일 이름 | -| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | -| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | -| logFiles.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -2324,12 +2829,9 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files "resultMessage": "SUCCESS", "isSuccessful": true }, - "logFiles": [ + "dbFlavors": [ { - "logFileName": "xtra_full.log-20230317", - "logFileType": "BACKUP", - "logFileSize": 4096, - "createdYmdt": "2023-03-17T14:02:29+09:00" + "vcpus": 1 } ] } @@ -2340,95 +2842,65 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files --- -### 로그 파일 내보내기 +## storages + +### 스토리지 목록 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/log-files/export +GET /v3.0/storages ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|--------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileNames | Body | Array | O | 로그 파일 이름 목록
- 최소 크기: `1` | -| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storages | Body | Array | 스토리지 목록 |

예시

```json { - "logFileNames": ["xtra_full.log-20230317"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "logs/backup" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storages": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +## 네트워크 -### 백업 목록 조회 +### 서브넷 목록 보기 ```http -GET /v3.0/backups +GET /v3.0/network/subnets ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|--------|----|----------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| backupType | Query | Enum | X | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동
- 기본값: 전체 | -| dbInstanceId | Query | UUID | X | 원본 DB 인스턴스의 식별자 | -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|-----------------------------------| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | UUID | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태 | -| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형 | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |
예시

@@ -2440,19 +2912,9 @@ GET /v3.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "backups": [ + "subnets": [ { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupSize": 4996786, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" + "availableIpCount": 1 } ] } @@ -2463,168 +2925,118 @@ GET /v3.0/backups --- -### 백업 내보내기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v3.0/backups/{backupId}/export +GET /v3.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storageTypes": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - -> [주의] -> 수동 백업의 경우 백업이 수행된 DB 인스턴스가 존재하지 않으면, 백업을 오브젝트 스토리지로 내보낼 수 없습니다. - --- -### 백업 복원하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v3.0/backups/{backupId}/restore +GET /v3.0/metric-statistics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Integer | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | - -
예시 -

- -```json - -{ - "dbInstanceName": "db-instance-restore", - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbPort": 10000, - "parameterGroupId": "132d383c-38e3-468a-a826-5e9a8fff15d0", - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 백업 삭제하기 +### Metric 목록 보기 ```http -DELETE /v3.0/backups/{backupId} +GET /v3.0/metrics ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "metrics": [ + { + "unit": "unit-example" + } + ] +} +``` + +

+
--- -## DB 보안 그룹 +## 백업 -### DB 보안 그룹 진행 상태 +### 백업 상태 -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | -### DB 보안 그룹 목록 보기 +### 백업 목록 조회 ```http -GET /v3.0/db-security-groups +GET /v3.0/backups ``` #### 요청 @@ -2633,15 +3045,20 @@ GET /v3.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-----------------------------------| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2653,14 +3070,10 @@ GET /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "totalCounts": 1, + "backups": [ { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2022-02-19T19:18:13+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2671,42 +3084,25 @@ GET /v3.0/db-security-groups --- -### DB 보안 그룹 상세 보기 +### 백업 삭제하기 ```http -GET /v3.0/db-security-groups/{dbSecurityGroupId} +DELETE /v3.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|----------|--------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다.
- `PORT`: 지정된 포트값으로 설정됩니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | 허용할 트래픽의 원격 소스 | -| rules.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| rules.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2718,30 +3114,7 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "rules": [ - { - "ruleId": "17c88ef6-95f1-4678-84f9-fee1b22e250d", - "description": "description", - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } - ], - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } + "jobId": "jobId-example" } ``` @@ -2750,50 +3123,33 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 생성하기 +### 백업 내보내기 ```http -POST /v3.0/db-security-groups +POST /v3.0/backups/{backupId}/export ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "rules": [ - { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0" - } - ] + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -2802,33 +3158,105 @@ POST /v3.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|------|---------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### DB 보안 그룹 수정하기 +### 백업 복원하기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId} +POST /v3.0/backups/{backupId}/restore ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|-----------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` |
예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } } ``` @@ -2837,7 +3265,9 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2848,33 +3278,37 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ```

- --- -### DB 보안 그룹 삭제하기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2885,7 +3319,12 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "userGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -2894,42 +3333,28 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 규칙 생성하기 +### 사용자 그룹 생성하기 ```http -POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v3.0/user-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT", - "minPort": 10000, - "maxPort": 10000 - }, - "cidr": "0.0.0.0/0" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -2938,178 +3363,74 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 보안 그룹 규칙 수정하기 - -```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleId | URL | UUID | O | DB 보안 그룹 규칙의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "DB_PORT" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "0.0.0.0/0" + "userGroupId": "userGroupId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 보안 그룹 규칙 삭제하기 - -```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|-------|----|---------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleIds | Query | Array | O | DB 보안 그룹 규칙의 식별자 목록 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 +### 사용자 그룹 삭제하기 ```http -GET /v3.0/parameter-groups +DELETE /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------|-------|------|----|----------| -| dbVersion | Query | Enum | X | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-------------------------------------------------------------------| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "parameterGroups": [ - { - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "createdYmdt": "2023-02-31T15:28:17+09:00", - "updatedYmdt": "2023-02-31T15:28:17+09:00" - } - ] -} -``` - -

-
- +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 상세 보기 +### 사용자 그룹 상세 보기 ```http -GET /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|--------------------------------------------------------------------------------------------------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | UUID | 파라미터 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- `CLIENT`: client
- `MYSQL`: mysql
- `MYSQLD`: mysqld | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- `VARIABLE`: 언제든 수정 가능
- `CONSTANT`: 수정 불가능
- `INIT_VARIABLE`: DB 인스턴스 생성 시에만 수정 가능 | -| parameters.applyType | Body | Enum | 적용 타입
- `SESSION`: 세션 적용
- `FILE`: 설정 파일 적용(재시작 필요)
- `BOTH`: 전체(재시작 필요) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3121,56 +3442,47 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "parameters": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "parameterId": "fa040b5e-f29f-46de-8f0d-bba4cb82887a", - "parameterFileGroup": "client", - "parameterName": "socket", - "fileParameterName": "socket", - "value": "/home/tcrds/db/mysql/tmp/mysql.sock", - "defaultValue": "/home/tcrds/db/mysql/tmp/mysql.sock", - "allowedValue": "", - "updateType": "CONSTANT", - "applyType": "BOTH" + "memberId": "memberId-example" } ], - "createdYmdt": "2023-03-13T11:02:28+09:00", - "updatedYmdt": "2023-03-13T11:02:28+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

- --- -### 파라미터 그룹 생성하기 +### 사용자 그룹 수정하기 ```http -POST /v3.0/parameter-groups +PUT /v3.0/user-groups/{userGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |
예시

```json { - "parameterGroupName": "parameter-group", - "dbVersion": "MYSQL_V8028" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -3179,67 +3491,86 @@ POST /v3.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 복사하기 +## 알림 그룹 + +### 알림 그룹 목록 보기 ```http -POST /v3.0/parameter-groups/{parameterGroupId}/copy +GET /v3.0/notification-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "parameterGroupName": "parameter-group-copy", - "description": "copy" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "notificationGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | - --- -### 파라미터 그룹 수정하기 +### 알림 그룹 생성하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId} +POST /v3.0/notification-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |
예시

```json { - "parameterGroupName": "parameter-group" + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], + "userGroupIds": [] } ``` @@ -3248,7 +3579,9 @@ PUT /v3.0/parameter-groups/{parameterGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3259,7 +3592,8 @@ PUT /v3.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3268,75 +3602,57 @@ PUT /v3.0/parameter-groups/{parameterGroupId} --- -### 파라미터 수정하기 +### 알림 그룹 삭제하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/parameters +DELETE /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------|------|--------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | - -

예시 -

- -```json -{ - "modifiedParameters": [ - { - "parameterId": "3abac558-7274-44e1-9f4a-f100f53f67ba", - "value": "0" - } - ] -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } -} -``` - -

-
- --- -### 파라미터 그룹 재설정하기 +### 알림 그룹 상세 보기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/reset +GET /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3347,7 +3663,24 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/reset "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ + { + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3356,48 +3689,66 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/reset --- -### 파라미터 그룹 삭제하기 +### 알림 그룹 수정하기 ```http -DELETE /v3.0/parameter-groups/{parameterGroupId} +PUT /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 사용자 그룹 +## 이벤트 -### 사용자 그룹 목록 보기 +### 이벤트 카테고리 + +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. + +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | + +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v3.0/user-groups +GET /v3.0/event-codes ``` #### 요청 @@ -3406,13 +3757,11 @@ GET /v3.0/user-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|-----------------------------------| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |
예시

@@ -3424,12 +3773,9 @@ GET /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "eventCodes": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "eventCategoryType": "ALL" } ] } @@ -3440,31 +3786,30 @@ GET /v3.0/user-groups --- -### 사용자 그룹 상세 보기 +### 이벤트 목록 조회 ```http -GET /v3.0/user-groups/{userGroupId} +GET /v3.0/events ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|----------|-----------------------------------------------------------------------------------------------------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
`ENTIRE`: 프로젝트 멤버 전체를 포함하는 사용자 그룹
`INDIVIDUAL_MEMBER`: 특정 프로젝트 멤버를 포함하는 사용자 그룹 | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

@@ -3476,16 +3821,12 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "userGroupTypeCode": "INDIVIDUAL_MEMBER", - "members": [ + "totalCounts": 1, + "events": [ { - "memberId": "1321e759-2ef3-4b85-9921-b13e918b24b5" + "eventYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + ] } ``` @@ -3494,75 +3835,99 @@ GET /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 생성하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v3.0/user-groups +GET /v3.0/event-subscriptions ``` -#### 요청 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|-------------------------------------------------------------| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록
`selectAllYN`이 true인 경우 해당 필드 값은 무시됨 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |

예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } ] } ``` -```json -{ - "userGroupName": "dev-team", - "selectAllYN":true -} -``` -

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------------|------|------|-------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | - --- -### 사용자 그룹 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v3.0/user-groups/{userGroupId} +POST /v3.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|----------------------------------------------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | -| userGroupName | Body | String | X | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5", - "f9064b09-2b15-442e-a4b0-3a5a2754555e" - ] + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ``` @@ -3571,7 +3936,9 @@ PUT /v3.0/user-groups/{userGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -3582,7 +3949,8 @@ PUT /v3.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -3591,64 +3959,121 @@ PUT /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 삭제하기 +### 이벤트 구독 삭제하기 ```http -DELETE /v3.0/user-groups/{userGroupId} +DELETE /v3.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v3.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 알림 그룹 +## 작업 정보 -### 알림 그룹 목록 보기 +### 작업 상태 + +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 ```http -GET /v3.0/notification-groups +GET /v3.0/jobs/{jobId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------------|------|----------|-----------------------------------| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3660,17 +4085,15 @@ GET /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ { - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "resourceId": "resourceId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3679,37 +4102,30 @@ GET /v3.0/notification-groups --- -### 알림 그룹 상세 보기 +## 파라미터 그룹 + +### 파라미터 그룹 목록 보기 ```http -GET /v3.0/notification-groups/{notificationGroupId} +GET /v3.0/parameter-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------------|------|----------|-----------------------------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3721,25 +4137,11 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "dbInstances": [ - { - "dbInstanceId": "ed5cb985-526f-4c54-9ae0-40288593de65", - "dbInstanceName": "database" - } - ], - "userGroups": [ + "parameterGroups": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + ] } ``` @@ -3748,37 +4150,28 @@ GET /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v3.0/notification-groups +POST /v3.0/parameter-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------------| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "notificationGroupName": "dev-team-noti", - "notifyEmail": false, - "isEnable": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65" - ], - "userGroupIds": [ - "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0" - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -3787,49 +4180,84 @@ POST /v3.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|------|------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "parameterGroupId": "parameterGroupId-example" +} +``` + +

+
--- -### 알림 그룹 수정하기 +### 파라미터 그룹 삭제하기 ```http -PUT /v3.0/notification-groups/{notificationGroupId} +DELETE /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부 | -| notifySms | Body | Boolean | X | SMS 알림 여부 | -| isEnabled | Body | Boolean | X | 활성화 여부 | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +이 API는 요청 본문을 요구하지 않습니다. -
예시 -

+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -```json -{ - "notifyEmail": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65", - "d51b7da0-682f-47ff-b588-b739f6adc740" - ] -} +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 파라미터 그룹 상세 보기 + +```http +GET /v3.0/parameter-groups/{parameterGroupId} ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3840,7 +4268,19 @@ PUT /v3.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ + { + "applyType": "BOTH" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3849,61 +4289,71 @@ PUT /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 수정하기 ```http -DELETE /v3.0/notification-groups/{notificationGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 모니터링 +이 API는 응답 본문을 반환하지 않습니다. -### Metric 목록 보기 +--- + +### 파라미터 그룹 복사하기 ```http -GET /v3.0/metrics +POST /v3.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|--------|-----------| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | Enum | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -3915,12 +4365,7 @@ GET /v3.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "measureName": "CPU_USAGE", - "unit": "%" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3929,56 +4374,29 @@ GET /v3.0/metrics --- -### 통계 정보 조회 +### 파라미터 수정하기 ```http -GET /v3.0/metric-statistics +PUT /v3.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|----------|----|-----------------------------------| -| dbInstanceId | Query | UUID | O | DB 인스턴스의 식별자 | -| measureNames | Query | Array | O | 조회 지표 목록
- 최소 크기: `1` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| interval | Query | Number | X | 조회 간격 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|-----------|----------| -| metricStatistics | Body | Array | 통계 정보 목록 | -| metricStatistics.measureName | Body | Enum | 측정 항목 유형 | -| metricStatistics.unit | Body | String | 측정값 단위 | -| metricStatistics.values | Body | Array | 측정값 목록 | -| metricStatistics.values.timestamp | Body | Timestamp | 측정 시간 | -| metricStatistics.values.value | Body | Object | 측정값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "metricStatistics": [ + "modifiedParameters": [ { - "measureName": "MYSQL_STATUS", - "unit": "", - "values": [ - [ - 1679298540, - "1" - ], - [ - 1679298600, - "1" - ], - [ - 1679298660, - "1" - ] - ] + "value": "value-example" } ] } @@ -3987,58 +4405,53 @@ GET /v3.0/metric-statistics

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 +### 파라미터 그룹 재설정하기 -### 이벤트 카테고리 +```http +PUT /v3.0/parameter-groups/{parameterGroupId}/reset +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 이벤트 목록 조회 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 프로젝트 정보 + +### 프로젝트 멤버 목록 보기 ```http -GET /v3.0/events +GET /v3.0/project/members ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| eventCategoryType | Query | Enum | O | 조회할 이벤트 카테고리 유형
- `ALL`: 전체
- `INSTANCE`: DB 인스턴스
- `BACKUP`: 백업
- `DB_SECURITY_GROUP`: DB 보안 그룹
- `TENANT`: 테넌트 | -| sourceId | Query | String | X | 이벤트가 발생한 대상 리소스의 식별자 | -| keyword | Query | String | X | 이벤트 메시지에 포함된 문자열 검색어 | -| ascendingOrder | Query | Enum | X | 이벤트 메시지 정렬 순서
- `ASC`: 오름차순
- `DESC`: 내림차순
- 기본값: `DESC` | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|---------------------------------------| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메시지 목록 | -| events.messages.langCode | Body | String | 언어 코드 | -| events.messages.message | Body | String | 이벤트 메시지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -4050,32 +4463,9 @@ GET /v3.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 28, - "events": [ + "members": [ { - "eventCategoryType": "INSTANCE", - "eventCode": "INSTC_02_01", - "sourceId": "76f00947-356e-4a20-8922-428368cc45ed", - "sourceName": "db-instance", - "messages": [ - { - "langCode": "EN", - "message": "DB instance started" - }, - { - "langCode": "JA", - "message": "DBインスタンスの起動" - }, - { - "langCode": "KO", - "message": "DB 인스턴스 시작" - }, - { - "langCode": "ZH", - "message": "DB instance started" - } - ], - "eventYmdt": "2023-03-20T16:31:59+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -4086,10 +4476,10 @@ GET /v3.0/events --- -### 구독 가능한 이벤트 코드 목록 보기 +### 리전 목록 보기 ```http -GET /v3.0/event-codes +GET /v3.0/project/regions ``` #### 요청 @@ -4098,11 +4488,11 @@ GET /v3.0/event-codes #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|-------|-------------| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

@@ -4114,10 +4504,9 @@ GET /v3.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "regions": [ { - "eventCode": "INSTC_05_01", - "eventCategoryType": "INSTANCE" + "isEnabled": false } ] } @@ -4127,3 +4516,4 @@ GET /v3.0/event-codes

--- + diff --git a/ko/api-guide-v3.0-ncgn.md b/ko/api-guide-v3.0-ncgn.md index 593bba4f..e299f1df 100644 --- a/ko/api-guide-v3.0-ncgn.md +++ b/ko/api-guide-v3.0-ncgn.md @@ -1,39 +1,30 @@ ## Database > RDS for MySQL > API 가이드 -## RDS for MySQL API 공통 정보 -### API 엔드포인트 -| 리전 | 엔드포인트 | -|-----------|-----------------------------------------------| -| 한국(판교) 리전 | https://kr1-rds-mysql.api.gncloud.go.kr | +## RDS for MySQL API 공통 정보 ### 인증 및 권한 -RDS for MySQL API를 사용하려면 User Access Key가 필요합니다. User Access Key는 NHN Cloud 계정 또는 IAM 계정을 기반으로 발급되는 인증 키로, Secret Access Key와 함께 사용하여 API 요청에 대한 인증 수단으로 활용됩니다. +RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. +발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. -User Access Key와 Secret Access Key는 콘솔의 **API 보안 설정**에서 발급할 수 있습니다. User Access Key 발급 및 사용에 대한 자세한 내용은 [User Access Key](/nhncloud/ko/public-api/user-access-key)를 참고하세요. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | +| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | -생성된 Key는 Appkey와 함께 요청 Header에 포함해야 합니다. +또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------|--------|--------|----|-------------------------------------------------------------| -| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-TC-AUTHENTICATION-ID | Header | String | O | API 보안 설정 메뉴의 User Access Key ID | -| X-TC-AUTHENTICATION-SECRET | Header | String | O | API 보안 설정 메뉴의 Secret Access Key | - - -또한 프로젝트 멤버 역할에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER`로 구분하여 권한을 부여할 수 있습니다. - -* `RDS for MySQL ADMIN` 권한은 모든 기능을 사용 가능합니다. -* `RDS for MySQL VIEWER` 권한은 정보를 조회하는 기능만 사용 가능합니다. +* `RDS for MySQL ADMIN` 역할은 API 실행에 필요한 모든 권한이 부여됩니다. +* `RDS for MySQL VIEWER` 역할은 정보를 조회하는 권한만 부여됩니다. * DB 인스턴스를 생성, 수정, 삭제하거나, DB 인스턴스를 대상으로 하는 어떠한 기능도 사용할 수 없습니다. - * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용 가능합니다. + * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용할 수 있습니다. API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같은 오류가 발생합니다. -| resultCode | resultMessage | 설명 | -|------------|---------------|-------------| -| 80401 | Unauthorized | 인증에 실패했습니다. | -| 80403 | Forbidden | 권한이 없습니다. | +| resultCode | resultMessage | 설명 | +|------------|---------------|-----| +| 80401 | Unauthorized | 인증에 실패했습니다. | +| 80403 | Forbidden | 권한이 없습니다. | ### 응답 공통 정보 @@ -51,52 +42,66 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 ``` #### 필드 -| 이름 | 형식 | 설명 | -|---------------|---------|-----------------------------------------| -| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | -| resultMessage | String | 결과 메시지 | -| isSuccessful | Boolean | 성공 여부 | +| 이름 | 형식 | 설명 | +|-----|-----|-----| +| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | +| resultMessage | String | 결과 메시지 | +| isSuccessful | Boolean | 성공 여부 | + +### API 엔드포인트 +| 리전 | 엔드포인트 | +|------|----------| +| 한국(판교) 리전 | https://kr1-rds-mysql.api.gncloud.go.kr | ### DB 엔진 유형 -| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 정보 | -|--------------|----------|-----------------|--------| -| MYSQL\_V5633 | X | X | NATIVE | -| MYSQL\_V5715 | O | O | NATIVE | -| MYSQL\_V5719 | O | O | NATIVE | -| MYSQL\_V5726 | O | O | NATIVE | -| MYSQL\_V5731 | X | X | NATIVE | -| MYSQL\_V5733 | O | X | NATIVE, SHA256 | -| MYSQL\_V5737 | O | O | NATIVE, SHA256 | -| MYSQL\_V8018 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8023 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8028 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8032 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8033 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8034 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8405 | O | O | CACHING_SHA2 | -| MYSQL_V8406 | O | O | CACHING_SHA2 | -| MYSQL_V8407 | O | O | CACHING_SHA2 | -| MYSQL_V8408 | O | O | CACHING_SHA2 | +| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | +|------------|----------|------------------|------------| +| MYSQL_V5633 | X | X | NATIVE | +| MYSQL_V5715 | O | O | NATIVE | +| MYSQL_V5719 | O | O | NATIVE | +| MYSQL_V5726 | O | O | NATIVE | +| MYSQL_V5731 | X | X | NATIVE | +| MYSQL_V5733 | O | X | NATIVE, SHA256 | +| MYSQL_V5737 | O | O | NATIVE, SHA256 | +| MYSQL_V8018 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8023 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8028 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8032 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8033 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8034 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8405 | O | O | CACHING_SHA2 | +| MYSQL_V8406 | O | O | CACHING_SHA2 | +| MYSQL_V8407 | O | O | CACHING_SHA2 | +| MYSQL_V8408 | O | O | CACHING_SHA2 | * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## 프로젝트 정보 +## DB 보안 그룹 -### 리전 목록 보기 +### DB 보안 그룹 진행 상태 + +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | + +### DB 보안 그룹 목록 보기 ```http -GET /v3.0/project/regions +GET /v3.0/db-security-groups ``` #### 요청 @@ -105,11 +110,15 @@ GET /v3.0/project/regions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------|------|---------|----------------------------------------------------------------------------| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -121,63 +130,51 @@ GET /v3.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ - { - "regionCode": "KR1", - "isEnabled": true - }, - { - "regionCode": "KR2", - "isEnabled": true - }, + "dbSecurityGroups": [ { - "regionCode": "JP1", - "isEnabled": true + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } ``` +

--- -### 프로젝트 멤버 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v3.0/project/members +POST /v3.0/db-security-groups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|--------|-----------------| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ { - "memberId": "1b1d3627-507a-49ea-8cb7-c86dfa9caa58", - "memberName": "홍길동", - "emailAddress": "gildong.hong@nhn.com", - "phoneNumber": "+821012345678" + "description": "description-example" } ] } @@ -186,29 +183,11 @@ GET /v3.0/project/members

---- - -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 - -```http -GET /v3.0/db-flavors -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -220,14 +199,7 @@ GET /v3.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbFlavorName": "m2.c1m2", - "ram": 2048, - "vcpus": 1 - } - ] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -236,76 +208,63 @@ GET /v3.0/db-flavors --- -## 네트워크 - -### 서브넷 목록 보기 +### DB 보안 그룹 삭제하기 ```http -GET /v3.0/network/subnets +DELETE /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|---------|------------------| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | UUID | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | - -

예시 -

+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "subnets": [ - { - "subnetId": "1b2a9b23-0725-4b92-8c78-35db66b8ad9f", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/24", - "usingGateway": true, - "availableIpCount": 240 - } - ] -} -``` +#### 응답 -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -## DB 엔진 - -### DB 엔진 목록 보기 +### DB 보안 그룹 상세 보기 ```http -GET /v3.0/db-versions +GET /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|---------|-----------------------| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroup | Body | Object | DB 보안 그룹 | +| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | +| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | +| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | +| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | +| dbSecurityGroup.rules.cidr | Body | String | CIDR | +| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | +| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -317,13 +276,19 @@ GET /v3.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ - { - "dbVersion": "MYSQL_V8028", - "dbVersionName": "MySQL 8.0.28", - "restorableFromObs": true - } - ] + "dbSecurityGroup": { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -332,61 +297,59 @@ GET /v3.0/db-versions --- -## 데이터 스토리지 - -### 데이터 스토리지 타입 목록 보기 +### DB 보안 그룹 수정하기 ```http -GET /v3.0/storage-types +PUT /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|-------|----------------| -| storageTypes | Body | Array | 데이터 스토리지 타입 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "storageTypes": [ - "General SSD", - "General HDD" - ] + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 데이터 스토리지 목록 보기 +### DB 보안 그룹 규칙 삭제하기 ```http -GET /v3.0/storages +DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------|------|-------|-------------| -| storages | Body | Array | 데이터 스토리지 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -398,10 +361,7 @@ GET /v3.0/storages "resultMessage": "SUCCESS", "isSuccessful": true }, - "storages": [ - "General SSD", - "General HDD" - ] + "jobId": "jobId-example" } ``` @@ -410,50 +370,51 @@ GET /v3.0/storages --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### DB 보안 그룹 규칙 생성하기 ```http -GET /v3.0/jobs/{jobId} +POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------|-----|------|----|---------| -| jobId | URL | UUID | O | 작업의 식별자 | +

예시 +

+ +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------|------|----------|-----------------------------------| -| jobId | Body | UUID | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태 | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | Enum | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | UUID | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -465,16 +426,7 @@ GET /v3.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "0ddb042c-5af6-43fb-a914-f4dd0540eb7c", - "jobStatus": "RUNNING", - "resourceRelations": [ - { - "resourceType": "DB_INSTANCE", - "resourceId": "56b39dcf-65eb-47ec-9d4f-09f160ba2266" - } - ], - "createdYmdt": "2023-02-22T20:47:12+09:00", - "updatedYmdt": "2023-02-22T20:49:46+09:00" + "jobId": "jobId-example" } ``` @@ -483,27 +435,52 @@ GET /v3.0/jobs/{jobId} --- -## DB 인스턴스 그룹 - -### DB 인스턴스 그룹 목록 보기 +### DB 보안 그룹 규칙 수정하기 ```http -GET /v3.0/db-instance-groups +PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | + +

예시 +

+ +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------|------|----------|--------------------------------------------------------------------------| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -515,14 +492,7 @@ GET /v3.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ - { - "dbInstanceGroupId": "05de0746-89fd-49c8-94f9-9c5b1df97009", - "replicationType": "STANDALONE", - "createdYmdt": "2023-02-13T17:35:20+09:00", - "updatedYmdt": "2023-02-13T17:35:20+09:00" - } - ] + "jobId": "jobId-example" } ``` @@ -531,32 +501,26 @@ GET /v3.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v3.0/db-instance-groups/{dbInstanceGroupId} +GET /v3.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|-----------------| -| dbInstanceGroupId | URL | UUID | O | DB 인스턴스 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |

예시

@@ -568,17 +532,11 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "36617a8e-0df8-4b16-b6ea-6306019e95da", - "replicationType": "STANDALONE", - "dbInstances": [ + "dbVersions": [ { - "dbInstanceId": "6d2db0ef-fe9b-4ed4-97b1-d97fcb4cf1b8", - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE" + "restorableFromObs": false } - ], - "createdYmdt": "2023-03-03T17:38:14+09:00", - "updatedYmdt": "2023-03-03T17:38:14+09:00" + ] } ``` @@ -611,8 +569,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | `BACKING_UP` | 백업 중 | | `CANCELING` | 취소 중 | | `CREATING` | 생성 중 | -| `CREATING_SCHEMA` | DB 스키마 생성 중 | -| `CREATING_USER` | 사용자 생성 중 | +| `CREATING_SCHEMA` | DB 스키마 생성 중 | +| `CREATING_USER` | 사용자 생성 중 | | `DELETING` | 삭제 중 | | `DELETING_SCHEMA` | DB 스키마 삭제 중 | | `DELETING_USER` | 사용자 삭제 중 | @@ -631,8 +589,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | `STARTING` | 시작 중 | | `STOPPING` | 정지 중 | | `SYNCING_SCHEMA` | DB 스키마 동기화 중 | -| `SYNCING_USER` | 사용자 동기화 중 | -| `UPDATING_USER` | 사용자 수정 중 | +| `SYNCING_USER` | 사용자 동기화 중 | +| `UPDATING_USER` | 사용자 수정 중 | ### DB 인스턴스 목록 보기 @@ -646,20 +604,20 @@ GET /v3.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | -| dbInstances.dbPort | Body | Number | DB 포트 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태 | -| dbInstances.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstances.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstances | Body | Array | DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | +| dbInstances.dbPort | Body | Number | DB 포트 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbInstances.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstances.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -673,17 +631,7 @@ GET /v3.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "createdYmdt": "2023-01-23T12:03:13+09:00", - "updatedYmdt": "2023-02-02T17:20:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -694,44 +642,104 @@ GET /v3.0/db-instances --- -### DB 인스턴스 상세 보기 +### DB 인스턴스 생성하기 ```http -GET /v3.0/db-instances/{dbInstanceId} +POST /v3.0/db-instances ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| authenticationPlugin | Body | Enum | X | 인증 Plugin
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | TLS Option
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE", + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| dbPort | Body | Number | DB 포트 | -| dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| progressStatus | Body | Enum | DB 인스턴스의 현재 작업 진행 상태 | -| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | -| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | -| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | -| supportAuthenticationPlugin | Body | Boolean | 인증 플러그인 지원 여부 | -| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | -| needMigration | Body | Boolean | 마이그레이션 필요 여부 | -| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -743,26 +751,7 @@ GET /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "dbFlavorId": "e9ed4ef6-78d7-46fa-ace9-32481e97f3b7", - "parameterGroupId": "b03e8b13-de27-4d04-a488-ff5689589372", - "dbSecurityGroupIds": ["01908c35-d2c9-4852-baf0-17f06ec42c03"], - "notificationGroupIds": ["83a62a33-ddbf-4a04-8653-e54463d5b1ac"], - "useDeletionProtection": false, - "supportAuthenticationPlugin": true, - "needToApplyParameterGroup": false, - "needMigration": false, - "supportDbVersionUpgrade": true, - "createdYmdt": "2022-11-23T12:03:13+09:00", - "updatedYmdt": "2022-12-02T17:20:17+09:00" + "jobId": "jobId-example" } ``` @@ -771,84 +760,442 @@ GET /v3.0/db-instances/{dbInstanceId} --- -### DB 인스턴스 생성하기 +### 오브젝트 스토리지를 이용한 DB 인스턴스 복원 ```http -POST /v3.0/db-instances +POST /v3.0/db-instances/restore-from-obs ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|---------------------------------------------------------------------| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbUserName | Body | String | O | DB 사용자 계정명 | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- 기본값: `NATIVE`(미지원 시 `CACHING_SHA2`)
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| imageId | Body | UUID | X | 이미지의 식별자 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | +| restore.username | Body | String | O | NHN Cloud 계정 혹은 IAM 멤버 ID | +| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | +| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | +| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "dbVersion": "ENUM_VALUE", + "useHighAvailability": false, + "imageId": "550e8400-e29b-41d4-a716-446655440000", + "pingInterval": 3, "storage": { - "storageType": "General SSD", + "storageType": "ENUM_VALUE", "storageSize": 20 }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, "backup": { - "backupPeriod": 1, + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": true, "backupSchedules": [ { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR" + "backupWndDuration": "HALF_AN_HOUR" } ] - } + }, + "restore": { + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" + }, + "useDefaultNotification": false, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 인스턴스 삭제하기 + +```http +DELETE /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 상세 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| dbPort | Body | Number | DB 포트 | +| dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | +| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | +| supportAuthenticationPlugin | Body | Boolean | 인증 plugin 지원 여부 | +| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | +| needMigration | Body | Boolean | 마이그레이션 필요 여부 | +| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "dbFlavorId": "dbFlavorId-example", + "parameterGroupId": "parameterGroupId-example", + "dbSecurityGroupIds": [], + "notificationGroupIds": [], + "useDeletionProtection": false, + "supportAuthenticationPlugin": false, + "needToApplyParameterGroup": false, + "needMigration": false, + "supportDbVersionUpgrade": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ +--- + +### DB 인스턴스 수정하기 + +```http +PUT /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbVersion | Body | Enum | X | DB 엔진 버전 코드 | +| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
- 기본값: `false` | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbPort": 1, + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "useDummy": false, + "dbSecurityGroupIds": [], + "executeBackup": false, + "useOnlineFailover": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 백업하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/backup +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "backupName": "backupName" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 백업 정보 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backupPeriod | Body | Number | 백업 보관 기간(일) | +| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | +| backupRetryCount | Body | Number | 백업 재시도 횟수 | +| replicationRegion | Body | Enum | 백업 복제 리전
- KR1: `한국(판교)` | +| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration
- HALF_AN_HOUR
- ONE_HOUR
- ONE_HOUR_AND_HALF
- TWO_HOURS
- TWO_HOURS_AND_HALF
- THREE_HOURS | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "backupPeriod": 1, + "ftwrlWaitTimeout": 1, + "backupRetryCount": 1, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +--- + +### 백업 정보 수정하기 + +```http +PUT /v3.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +
예시 +

+ +```json +{ + "backupPeriod": 0, + "ftwrlWaitTimeout": 0, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] } ``` @@ -857,45 +1204,325 @@ POST /v3.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 오브젝트 스토리지로 백업 + +```http +POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | + +
예시 +

+ +```json +{ + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 테스트 용 DB 이미지 메타 변경 + +```http +PUT /v3.0/db-instances/{dbInstanceId}/change-image-meta +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 스키마 목록 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSchemas | Body | Array | DB 스키마 목록 | +| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | +| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | +| dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbSchemas": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### DB 스키마 생성하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbSchemaName | Body | String | O | DB 스키마 이름
- 최대 길이: `64`
- 영문 시작, 영문/숫자/_ 허용, 1~64자, MySQL 예약어 불가 | + +
예시 +

+ +```json +{ + "dbSchemaName": "dbSchemaName-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 스키마 삭제하기 + +```http +DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbSchemaId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 사용자 목록 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/db-users +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbUsers | Body | Array | DB 사용자 목록 | +| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | +| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | +| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- STABLE
- CREATING
- UPDATING
- SYNCING
- DELETING
- DELETED | +| dbUsers.createdYmdt | Body | DateTime | 생성 일시 | +| dbUsers.updatedYmdt | Body | DateTime | 수정 일시 | +| dbUsers.authenticationPlugin | Body | Enum | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| dbUsers.tlsOption | Body | Enum | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbUsers": [ + { + "tlsOption": "NONE" + } + ] +} +``` + +

+
--- -### DB 인스턴스 수정하기 +### DB 사용자 생성하기 ```http -PUT /v3.0/db-instances/{dbInstanceId} +POST /v3.0/db-instances/{dbInstanceId}/db-users ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|--------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbPort | Body | Number | X | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbVersion | Body | Enum | X | DB 엔진 유형 | -| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
기본값: `false` | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| host | Body | String | O | DB 사용자 계정의 호스트명
- 최대 길이: `45` | +| authorityType | Body | Enum | O | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |
예시

```json { - "dbInstanceName": "db-instance2", - "description": "description2", - "dbPort": 10001, - "dbSecurityGroupIds": [], - "executeBackup": true + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "host": "host-example", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" } ``` @@ -904,70 +1531,106 @@ PUT /v3.0/db-instances/{dbInstanceId} #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### DB 인스턴스 삭제하기 +### DB 사용자 삭제하기 ```http -DELETE /v3.0/db-instances/{dbInstanceId} +DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | ---- - -### DB 인스턴스 재시작하기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/restart +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} ``` -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +

+
-#### 응답 +--- -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +### DB 사용자 수정하기 ---- -### DB 인스턴스 강제 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/force-restart +PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserId | URL | UUID | O | | +| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| authorityType | Body | Enum | X | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "dbPassword": "dbPassword", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` +

+
#### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -978,282 +1641,228 @@ POST /v3.0/db-instances/{dbInstanceId}/force-restart "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ```

- --- -### DB 인스턴스 시작하기 +### DB 인스턴스 삭제 보호 설정 변경 ```http -POST /v3.0/db-instances/{dbInstanceId}/start +PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | + +
예시 +

+ +```json +{ + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 정지하기 +### DB 인스턴스 강제 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/stop +POST /v3.0/db-instances/{dbInstanceId}/force-restart ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 백업하기 +### 고가용성 수정하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/backup +PUT /v3.0/db-instances/{dbInstanceId}/high-availability ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|-----------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupName | Body | String | O | 백업을 식별할 수 있는 이름 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -### DB 인스턴스 백업 후 내보내기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage +```json +{ + "useHighAvailability": false, + "pingInterval": 1 +} ``` -#### 요청 +

+
+ +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 복제하기 +### 고가용성 일시 중지하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/replicate +POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록
- 기본값: 원본 DB 인스턴스 값 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: 원본 DB 인스턴스 값 | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전
- 기본값: 원본 DB 인스턴스 값 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00`
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간
- 기본값: 원본 DB 인스턴스 값 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance-replicate", - "description": "description", - "dbPort": 11000, - "network": { - "availabilityZone": "kr-pub-a" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "storage": { - "stroageSize": 100 - } + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 승격하기 +### 고가용성 복구하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/promote +POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### 복원 정보 조회 +### 고가용성 다시 시작하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/restoration-info +POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | -| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | -| restorableBackups | Body | Array | 복원 가능한 백업 목록 | -| restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | -| restorableBackups.backup.backupName | Body | String | 백업 이름 | -| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | -| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동 | -| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- `BACKING_UP`: 백업 중인 경우
- `COMPLETED`: 백업이 완료된 경우
- `DELETING`: 백업이 삭제 중인 경우
- `DELETED`: 백업이 삭제된 경우
- `ERROR`: 오류가 발생한 경우 | -| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| restorableBackups.backup.dbVersion | Body | String | DB 엔진 유형 | -| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | -| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | -| restorableBackups.backup.binLogPosition | Body | Number | 바이너리 로그 파일 위치 | -| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | -| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | -| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "oldestRestorableYmdt": "2023-07-09T16:33:33+09:00", - "latestRestorableYmdt": "2023-07-10T15:44:44+09:00", - "restorableBackups": [ - { - "backup": { - "backupId": "145d889a-fe08-474f-8f58-bde576ff96a9", - "backupName": "example-backup-name", - "backupStatus": "COMPLETED", - "dbInstanceId": "dba1be25-9429-4589-9716-7fb6daad7cb9", - "dbInstanceName": "original-db-instance-name", - "dbVersion": "MYSQL_V8028", - "backupType": "MANUAL", - "backupSize": 8299904, - "useBackupLock": true, - "failoverCount": 0, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 367916037, - "createdYmdt": "2023-07-10T15:44:44+09:00", - "updatedYmdt": "2023-07-10T15:46:07+09:00" - }, - "restorableBinLogs": [ - "mysql-bin.000001" - ] - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ``` @@ -1262,39 +1871,25 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info --- -### 복원될 마지막 쿼리 조회 +### 고가용성 분리하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query +POST /v3.0/db-instances/{dbInstanceId}/high-availability/split ``` -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|------|----|-----------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restoreType | Query | Enum | O | 복원 타입 종류
- `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
- `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입 | - -#### restoreType이 `TIMESTAMP`인 경우 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-------|----------|----|-------------------------------------------| -| restoreYmdt | Query | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +#### 요청 -#### restoreType이 `BINLOG`인 경우 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------|-------|--------|----|--------------------| -| backupId | Query | UUID | O | 복원에 사용할 백업의 식별자 | -| binLogFileName | Query | String | O | 복원에 사용할 바이너리 로그 이름 | -| binLogPosition | Query | Number | O | 복원에 사용할 바이너리 로그 위치 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|----------|--------------------------------------| -| executedYmdt | Body | DateTime | 쿼리 수행 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| lastQuery | Body | String | 마지막 수행 쿼리 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -1306,8 +1901,7 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query "resultMessage": "SUCCESS", "isSuccessful": true }, - "executedYmdt": "2023-03-17T14:02:29+09:00", - "lastQuery": "INSERT INTO `test`.`test`SET @1='0123'" + "jobId": "jobId-example" } ``` @@ -1316,303 +1910,189 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query --- -### 복원 +### 로그 파일 목록 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/restore +GET /v3.0/db-instances/{dbInstanceId}/log-files ``` -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restore | Body | Object | O | 복원 정보 객체 | -| restore.restoreType | Body | Enum | O | 복원 타입 종류
- `TIMESTAMP`: 복원 가능 시간 범위 내의 특정 시각으로 시점 복원
- `BINLOG`: 복원 가능한 바이너리 로그 위치를 지정하여 시점 복원
- `BACKUP`: 기존에 생성한 백업을 이용하여 스냅숏 복원 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | +이 API는 요청 본문을 요구하지 않습니다. -#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|----------|----|------------------------------------------------------------------------------------------------| -| restore.restoreYmdt | Body | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD)
복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능하다. | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| logFiles | Body | Array | 로그 파일 목록 | +| logFiles.logFileName | Body | String | 로그 파일 이름 | +| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- ERROR
- BINLOG
- GENERAL
- SLOW_QUERY
- AUDIT
- BACKUP | +| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | +| logFiles.createdYmdt | Body | DateTime | 생성 일시 |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "TIMESTAMP", - "restoreYmdt": "2023-07-10T15:44:44+09:00" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "logFiles": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) +--- + +### 로그 파일 내보내기 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------------|------|--------|----|--------------------| -| restore.backupId | Body | UUID | O | 복원에 사용할 백업의 식별자 | -| restore.binLog | Body | Object | O | 바이너리 로그 정보 객체 | -| restore.binLog.binLogFileName | Body | String | O | 복원에 사용할 바이너리 로그 이름 | -| restore.binLog.binLogPosition | Body | Number | O | 복원에 사용할 바이너리 로그 위치 | +```http +POST /v3.0/db-instances/{dbInstanceId}/log-files/export +``` -* 바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. +#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| logFileNames | Body | Array | O | 로그 파일 이름 목록 | +| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BINLOG", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36", - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 1234567 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "logFileNames": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

-#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|------|------------------------------|-----------------| -| restore.backupId | Body | UUID | O(restoreType이 `BACKUP`인 경우) | 복원에 사용할 백업의 식별자 | - +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BACKUP", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

+--- + +### 네트워크 정보 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/network-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | +| subnet | Body | Object | 서브넷 객체 | +| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnet.subnetCidr | Body | String | 서브넷의 CIDR | +| endPoints | Body | Array | 접속 정보 목록 | +| endPoints.domain | Body | String | 도메인 | +| endPoints.ipAddress | Body | String | IP 주소 | +| endPoints.endPointType | Body | String | 접속 정보 타입 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "availabilityZone": "availabilityZone-example", + "subnet": { + "subnetId": "subnetId-example", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example" + }, + "endPoints": [ + { + "endPointType": "endPointType-example" + } + ] +} +``` +

+
--- -### 오브젝트 스토리지로부터 복원 +### 네트워크 정보 수정하기 ```http -POST /v3.0/db-instances/restore-from-obs +PUT /v3.0/db-instances/{dbInstanceId}/network-info ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------| -| restore | Body | Object | O | 복원 정보 객체 | -| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | -| restore.username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | -| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | -| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | - - +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbVersion": "MYSQL_V8028", - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "tenantId":"tenant-id", - "username":"username", - "password":"password", - "targetContainer":"targetContainer", - "objectPath":"objectPath" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "usePublicAccess": false } ``` @@ -1621,30 +2101,48 @@ POST /v3.0/db-instances/restore-from-obs #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +

예시 +

---- +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+--- -### DB 인스턴스 삭제 보호 설정 변경하기 +### DB 인스턴스 승격하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection +POST /v3.0/db-instances/{dbInstanceId}/promote ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1655,7 +2153,8 @@ PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ``` @@ -1664,137 +2163,203 @@ PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection --- -### 고가용성 수정하기 +### DB 인스턴스 복제하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/high-availability +POST /v3.0/db-instances/{dbInstanceId}/replicate ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|---------|----|------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부 | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | X | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | X | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | X | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | ---- - -### 고가용성 다시 시작하기 +

예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} ``` -#### 요청 +

+
-이 API는 요청 본문을 요구하지 않습니다. +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | -#### 응답 +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 고가용성 일시 중지하기 +### DB 인스턴스 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause +POST /v3.0/db-instances/{dbInstanceId}/restart ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | -### 고가용성 복구하기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair +```json +{ + "useOnlineFailover": false, + "executeBackup": false, + "waitReplicationDelay": false, + "useReadOnly": false +} ``` -#### 요청 +

+
-이 API는 요청 본문을 요구하지 않습니다. +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | -#### 응답 +
예시 +

-| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### 고가용성 분리하기 +### DB 인스턴스 복원 정보 조회 ```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/split +GET /v3.0/db-instances/{dbInstanceId}/restoration-info ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 데이터 스토리지 정보 보기 +### 복원될 마지막 쿼리 조회 ```http -GET /v3.0/db-instances/{dbInstanceId}/storage-info +GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------|------|--------|--------------------------------------------------------------------------------------| -| storageType | Body | Enum | 데이터 스토리지 타입 | -| storageSize | Body | Number | 데이터 스토리지 크기(GB) | -| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- `DETACHED`: 부착되지 않음
- `ATTACHED`: 부착됨
- `DELETED`: 삭제됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| executedYmdt | Body | DateTime | 쿼리 수행 일시 | +| lastQuery | Body | String | 마지막 수행 쿼리 |
예시

@@ -1806,66 +2371,142 @@ GET /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "General SSD", - "storageSize": 20, - "storageStatus": "ATTACHED" + "executedYmdt": "2023-12-31T15:00:00+09:00", + "lastQuery": "lastQuery-example" } ```

- --- -### 데이터 스토리지 정보 수정하기 +### DB 인스턴스 복원 ```http -PUT /v3.0/db-instances/{dbInstanceId}/storage-info +POST /v3.0/db-instances/{dbInstanceId}/restore ``` -#### 요청 +#### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: 현재값
- 최댓값: `2048` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| imageId | Body | UUID | X | 이미지의 식별자 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.restoreType | Body | Enum | O | 복원 타입
- TIMESTAMP: `복원 가능한 시간 이내의 시간을 이용한 시점 복원`
- BINLOG: `복원 가능한 바이너리 로그 위치를 이용한 시점 복원`
- BACKUP: `기존에 생성한 백업을 이용한 스냅숏 복원` | +| restore.binLog.binLogFileName | Body | String | X | 복원에 사용할 바이너리 로그 이름 | +| restore.binLog.binLogPosition | Body | Object | X | 복원에 사용할 바이너리 로그 위치 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -#### 응답 +#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.restoreYmdt | Body | DateTime | X | DB 인스턴스 복원 일시 | ---- +복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. -### 백업 정보 보기 +#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) -```http -GET /v3.0/db-instances/{dbInstanceId}/backup-info -``` +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | +| restore.binLog | Body | Object | X | 복원에 사용할 바이너리 로그 정보 객체 | -#### 요청 +바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. -이 API는 요청 본문을 요구하지 않습니다. +#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "useHighAvailability": false, + "imageId": "550e8400-e29b-41d4-a716-446655440000", + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "restoreType": "TIMESTAMP", + "binLog": { + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + } + } + }, + "useDefaultNotification": false, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|---------|----------------| -| backupPeriod | Body | Number | 백업 보관 기간(일) | -| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | -| backupRetryCount | Body | Number | 백업 재시도 횟수 | -| replicationRegion | Body | Enum | 백업 복제 리전 | -| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | -| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1877,100 +2518,73 @@ GET /v3.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "backupPeriod": 1, - "ftwrlWaitTimeout": 1800, - "backupRetryCount": 0, - "replicationRegion": null, - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] + "jobId": "jobId-example" } ```

- --- -### 백업 정보 수정하기 +### DB 인스턴스 시작하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/backup-info +POST /v3.0/db-instances/{dbInstanceId}/start ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------------------------|------|---------|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "backupPeriod": 5, - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndBgnTime": "01:00:00", - "backupWndDuration": "TWO_HOURS" - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 네트워크 정보 보기 +### DB 인스턴스 정지하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/network-info +POST /v3.0/db-instances/{dbInstanceId}/stop ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------------------------------------------------------------------------------------------------------------------------------| -| availabilityZone | Body | Enum | DB 인스턴스를 생성할 가용성 영역 | -| subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | UUID | 서브넷의 식별자 | -| subnet.subnetName | Body | UUID | 서브넷을 식별할 수 있는 이름 | -| subnet.subnetCidr | Body | UUID | 서브넷의 CIDR | -| endPoints | Body | Array | 접속 정보 목록 | -| endPoints.domain | Body | String | 도메인 | -| endPoints.ipAddress | Body | String | IP 주소 | -| endPoints.endPointType | Body | Enum | 접속 정보 타입
-`EXTERNAL`: 외부 접속 도메인
-`INTERNAL`: 내부 접속 도메인
-`PUBLIC`: (Deprecated) 외부 접속 도메인
-`PRIVATE`: (Deprecated) 내부 접속 도메인 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1982,19 +2596,7 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "kr-pub-a", - "subnet": { - "subnetId": "bd453789-34ae-416c-9f78-05b9e43a46be", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/16" - }, - "endPoints": [ - { - "domain": "ea548a78-d85f-43b4-8ddf-c88d999b9905.internal.kr1.mysql.rds.nhncloudservice.com", - "ipAddress": "192.168.0.2", - "endPointType": "INTERNAL" - } - ] + "jobId": "jobId-example" } ``` @@ -2003,55 +2605,27 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info --- -### 네트워크 정보 수정하기 - -```http -PUT /v3.0/db-instances/{dbInstanceId}/network-info -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 목록 보기 +### 스토리지 정보 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/db-users +GET /v3.0/db-instances/{dbInstanceId}/storage-info ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|-----------------------------------------------------------------------------------------------------------------------------| -| dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | -| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | -| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | -| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `UPDATING`: 수정 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbUsers.authenticationPlugin | Body | Enum | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| dbUsers.tlsOption | Body | Enum | TLS Option
- NONE
- SSL
- X509 | -| dbUsers.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbUsers.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageType | Body | Enum | 데이터 스토리지 타입 | +| storageSize | Body | Number | 데이터 스토리지 크기(GB) | +| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- DELETED: `삭제됨`
- PENDING_DELETION: `삭제 유예됨`
- DELETION_RESERVED: `삭제 예약됨 (스냅샷 정리 대기)`
- DETACHED: `해제됨`
- ATTACHED: `할당됨` |

예시

@@ -2063,19 +2637,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbUsers": [ - { - "dbUserId": "4b3d530b-fd02-4d59-a620-83d019a67bbb", - "dbUserName": "db-user", - "host": "%", - "authorityType": "DDL", - "dbUserStatus": "STABLE", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE", - "createdYmdt": "2023-03-17T14:02:29+09:00", - "updatedYmdt": "2023-03-17T14:02:31+09:00" - } - ] + "storageType": "ENUM_VALUE", + "storageSize": 1, + "storageStatus": "DELETED" } ``` @@ -2084,38 +2648,25 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users --- -### DB 사용자 생성하기 +### 스토리지 정보 수정하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/db-users +PUT /v3.0/db-instances/{dbInstanceId}/storage-info ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserName | Body | String | O | DB 사용자 계정 이름
- 최소 길이: `1`
- 최대 길이: `32` | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| host | Body | String | O | DB 사용자 계정의 호스트명
- 예시: `1.1.1.%` | -| authorityType | Body | Enum | O | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- 기본값: `NATIVE`(미지원 시 `CACHING_SHA2`)
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | - -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 설정할 수 있습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최댓값: `2048` |

예시

```json { - "dbUserName": "db-user", - "dbPassword": "password", - "host": "1.1.1.%", - "authorityType": "CRUD", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE" + "storageSize": 1 } ``` @@ -2124,99 +2675,50 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 수정하기 - -```http -PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | -| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| authorityType | Body | Enum | X | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | - -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 수정할 수 있습니다. -> `authenticationPlugin`의 값은 `dbPassword`와 동시에 수정을 해야 합니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

```json { - "authorityType": "DDL" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 삭제하기 - -```http -DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +## DB 인스턴스 그룹 -### DB 스키마 목록 보기 +### DB 인스턴스 그룹 목록 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/db-schemas +GET /v3.0/db-instance-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|------------------------------------------------------------------------------------------------------| -| dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | -| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | -| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbSchemas.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2228,12 +2730,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSchemas": [ + "dbInstanceGroups": [ { - "dbSchemaId": "7c9a94b8-86c1-435d-8af2-82a5e9d53fd4", - "dbSchemaName": "schema", - "dbSchemaStatus": "STABLE", - "createdYmdt": "2023-03-20T13:37:45+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2244,75 +2743,81 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas --- -### DB 스키마 생성하기 +### DB 인스턴스 그룹 상세 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/db-schemas +GET /v3.0/db-instance-groups/{dbInstanceGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaName | Body | String | O | DB 스키마 이름 | +이 API는 요청 본문을 요구하지 않습니다. -#### 응답 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +#### 응답 ---- +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | -### DB 스키마 삭제하기 +

예시 +

-```http -DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} ``` -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 로그 파일 목록 보기 +## DB 인스턴스 사양 + +### DB 인스턴스 사양 목록 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/log-files +GET /v3.0/db-flavors ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|-------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileTypes | Query | Array | X | 로그 파일 타입 종류 목록
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| logFiles | Body | Array | 로그 파일 목록 | -| logFiles.logFileName | Body | String | 로그 파일 이름 | -| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | -| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | -| logFiles.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -2324,12 +2829,9 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files "resultMessage": "SUCCESS", "isSuccessful": true }, - "logFiles": [ + "dbFlavors": [ { - "logFileName": "xtra_full.log-20230317", - "logFileType": "BACKUP", - "logFileSize": 4096, - "createdYmdt": "2023-03-17T14:02:29+09:00" + "vcpus": 1 } ] } @@ -2340,95 +2842,65 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files --- -### 로그 파일 내보내기 +## storages + +### 스토리지 목록 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/log-files/export +GET /v3.0/storages ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|--------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileNames | Body | Array | O | 로그 파일 이름 목록
- 최소 크기: `1` | -| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storages | Body | Array | 스토리지 목록 |

예시

```json { - "logFileNames": ["xtra_full.log-20230317"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "logs/backup" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storages": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +## 네트워크 -### 백업 목록 조회 +### 서브넷 목록 보기 ```http -GET /v3.0/backups +GET /v3.0/network/subnets ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|--------|----|----------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| backupType | Query | Enum | X | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동
- 기본값: 전체 | -| dbInstanceId | Query | UUID | X | 원본 DB 인스턴스의 식별자 | -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|-----------------------------------| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | UUID | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태 | -| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형 | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |
예시

@@ -2440,19 +2912,9 @@ GET /v3.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "backups": [ + "subnets": [ { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupSize": 4996786, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" + "availableIpCount": 1 } ] } @@ -2463,168 +2925,118 @@ GET /v3.0/backups --- -### 백업 내보내기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v3.0/backups/{backupId}/export +GET /v3.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storageTypes": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - -> [주의] -> 수동 백업의 경우 백업이 수행된 DB 인스턴스가 존재하지 않으면, 백업을 오브젝트 스토리지로 내보낼 수 없습니다. - --- -### 백업 복원하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v3.0/backups/{backupId}/restore +GET /v3.0/metric-statistics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Integer | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | - -
예시 -

- -```json - -{ - "dbInstanceName": "db-instance-restore", - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbPort": 10000, - "parameterGroupId": "132d383c-38e3-468a-a826-5e9a8fff15d0", - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 백업 삭제하기 +### Metric 목록 보기 ```http -DELETE /v3.0/backups/{backupId} +GET /v3.0/metrics ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "metrics": [ + { + "unit": "unit-example" + } + ] +} +``` + +

+
--- -## DB 보안 그룹 +## 백업 -### DB 보안 그룹 진행 상태 +### 백업 상태 -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | -### DB 보안 그룹 목록 보기 +### 백업 목록 조회 ```http -GET /v3.0/db-security-groups +GET /v3.0/backups ``` #### 요청 @@ -2633,15 +3045,20 @@ GET /v3.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-----------------------------------| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2653,14 +3070,10 @@ GET /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "totalCounts": 1, + "backups": [ { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2022-02-19T19:18:13+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2671,42 +3084,25 @@ GET /v3.0/db-security-groups --- -### DB 보안 그룹 상세 보기 +### 백업 삭제하기 ```http -GET /v3.0/db-security-groups/{dbSecurityGroupId} +DELETE /v3.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|----------|--------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다.
- `PORT`: 지정된 포트값으로 설정됩니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | 허용할 트래픽의 원격 소스 | -| rules.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| rules.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2718,30 +3114,7 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "rules": [ - { - "ruleId": "17c88ef6-95f1-4678-84f9-fee1b22e250d", - "description": "description", - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } - ], - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } + "jobId": "jobId-example" } ``` @@ -2750,50 +3123,33 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 생성하기 +### 백업 내보내기 ```http -POST /v3.0/db-security-groups +POST /v3.0/backups/{backupId}/export ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "rules": [ - { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0" - } - ] + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -2802,33 +3158,105 @@ POST /v3.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|------|---------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### DB 보안 그룹 수정하기 +### 백업 복원하기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId} +POST /v3.0/backups/{backupId}/restore ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|-----------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` |
예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } } ``` @@ -2837,7 +3265,9 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2848,33 +3278,37 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ```

- --- -### DB 보안 그룹 삭제하기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2885,7 +3319,12 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "userGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -2894,42 +3333,28 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 규칙 생성하기 +### 사용자 그룹 생성하기 ```http -POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v3.0/user-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT", - "minPort": 10000, - "maxPort": 10000 - }, - "cidr": "0.0.0.0/0" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -2938,178 +3363,74 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 보안 그룹 규칙 수정하기 - -```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleId | URL | UUID | O | DB 보안 그룹 규칙의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "DB_PORT" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "0.0.0.0/0" + "userGroupId": "userGroupId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 보안 그룹 규칙 삭제하기 - -```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|-------|----|---------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleIds | Query | Array | O | DB 보안 그룹 규칙의 식별자 목록 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 +### 사용자 그룹 삭제하기 ```http -GET /v3.0/parameter-groups +DELETE /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------|-------|------|----|----------| -| dbVersion | Query | Enum | X | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-------------------------------------------------------------------| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "parameterGroups": [ - { - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "createdYmdt": "2023-02-31T15:28:17+09:00", - "updatedYmdt": "2023-02-31T15:28:17+09:00" - } - ] -} -``` - -

-
- +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 상세 보기 +### 사용자 그룹 상세 보기 ```http -GET /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|--------------------------------------------------------------------------------------------------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | UUID | 파라미터 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- `CLIENT`: client
- `MYSQL`: mysql
- `MYSQLD`: mysqld | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- `VARIABLE`: 언제든 수정 가능
- `CONSTANT`: 수정 불가능
- `INIT_VARIABLE`: DB 인스턴스 생성 시에만 수정 가능 | -| parameters.applyType | Body | Enum | 적용 타입
- `SESSION`: 세션 적용
- `FILE`: 설정 파일 적용(재시작 필요)
- `BOTH`: 전체(재시작 필요) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3121,56 +3442,47 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "parameters": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "parameterId": "fa040b5e-f29f-46de-8f0d-bba4cb82887a", - "parameterFileGroup": "client", - "parameterName": "socket", - "fileParameterName": "socket", - "value": "/home/tcrds/db/mysql/tmp/mysql.sock", - "defaultValue": "/home/tcrds/db/mysql/tmp/mysql.sock", - "allowedValue": "", - "updateType": "CONSTANT", - "applyType": "BOTH" + "memberId": "memberId-example" } ], - "createdYmdt": "2023-03-13T11:02:28+09:00", - "updatedYmdt": "2023-03-13T11:02:28+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

- --- -### 파라미터 그룹 생성하기 +### 사용자 그룹 수정하기 ```http -POST /v3.0/parameter-groups +PUT /v3.0/user-groups/{userGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |
예시

```json { - "parameterGroupName": "parameter-group", - "dbVersion": "MYSQL_V8028" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -3179,67 +3491,86 @@ POST /v3.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 복사하기 +## 알림 그룹 + +### 알림 그룹 목록 보기 ```http -POST /v3.0/parameter-groups/{parameterGroupId}/copy +GET /v3.0/notification-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "parameterGroupName": "parameter-group-copy", - "description": "copy" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "notificationGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | - --- -### 파라미터 그룹 수정하기 +### 알림 그룹 생성하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId} +POST /v3.0/notification-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |
예시

```json { - "parameterGroupName": "parameter-group" + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], + "userGroupIds": [] } ``` @@ -3248,7 +3579,9 @@ PUT /v3.0/parameter-groups/{parameterGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3259,7 +3592,8 @@ PUT /v3.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3268,75 +3602,57 @@ PUT /v3.0/parameter-groups/{parameterGroupId} --- -### 파라미터 수정하기 +### 알림 그룹 삭제하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/parameters +DELETE /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------|------|--------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | - -

예시 -

- -```json -{ - "modifiedParameters": [ - { - "parameterId": "3abac558-7274-44e1-9f4a-f100f53f67ba", - "value": "0" - } - ] -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } -} -``` - -

-
- --- -### 파라미터 그룹 재설정하기 +### 알림 그룹 상세 보기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/reset +GET /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3347,7 +3663,24 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/reset "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ + { + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3356,48 +3689,66 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/reset --- -### 파라미터 그룹 삭제하기 +### 알림 그룹 수정하기 ```http -DELETE /v3.0/parameter-groups/{parameterGroupId} +PUT /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 사용자 그룹 +## 이벤트 -### 사용자 그룹 목록 보기 +### 이벤트 카테고리 + +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. + +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | + +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v3.0/user-groups +GET /v3.0/event-codes ``` #### 요청 @@ -3406,13 +3757,11 @@ GET /v3.0/user-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|-----------------------------------| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |
예시

@@ -3424,12 +3773,9 @@ GET /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "eventCodes": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "eventCategoryType": "ALL" } ] } @@ -3440,31 +3786,30 @@ GET /v3.0/user-groups --- -### 사용자 그룹 상세 보기 +### 이벤트 목록 조회 ```http -GET /v3.0/user-groups/{userGroupId} +GET /v3.0/events ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|----------|-----------------------------------------------------------------------------------------------------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
`ENTIRE`: 프로젝트 멤버 전체를 포함하는 사용자 그룹
`INDIVIDUAL_MEMBER`: 특정 프로젝트 멤버를 포함하는 사용자 그룹 | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

@@ -3476,16 +3821,12 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "userGroupTypeCode": "INDIVIDUAL_MEMBER", - "members": [ + "totalCounts": 1, + "events": [ { - "memberId": "1321e759-2ef3-4b85-9921-b13e918b24b5" + "eventYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + ] } ``` @@ -3494,75 +3835,99 @@ GET /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 생성하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v3.0/user-groups +GET /v3.0/event-subscriptions ``` -#### 요청 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|-------------------------------------------------------------| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록
`selectAllYN`이 true인 경우 해당 필드 값은 무시됨 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |

예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } ] } ``` -```json -{ - "userGroupName": "dev-team", - "selectAllYN":true -} -``` -

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------------|------|------|-------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | - --- -### 사용자 그룹 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v3.0/user-groups/{userGroupId} +POST /v3.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|----------------------------------------------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | -| userGroupName | Body | String | X | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5", - "f9064b09-2b15-442e-a4b0-3a5a2754555e" - ] + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ``` @@ -3571,7 +3936,9 @@ PUT /v3.0/user-groups/{userGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -3582,7 +3949,8 @@ PUT /v3.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -3591,64 +3959,121 @@ PUT /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 삭제하기 +### 이벤트 구독 삭제하기 ```http -DELETE /v3.0/user-groups/{userGroupId} +DELETE /v3.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v3.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 알림 그룹 +## 작업 정보 -### 알림 그룹 목록 보기 +### 작업 상태 + +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 ```http -GET /v3.0/notification-groups +GET /v3.0/jobs/{jobId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------------|------|----------|-----------------------------------| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3660,17 +4085,15 @@ GET /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ { - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "resourceId": "resourceId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3679,37 +4102,30 @@ GET /v3.0/notification-groups --- -### 알림 그룹 상세 보기 +## 파라미터 그룹 + +### 파라미터 그룹 목록 보기 ```http -GET /v3.0/notification-groups/{notificationGroupId} +GET /v3.0/parameter-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------------|------|----------|-----------------------------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3721,25 +4137,11 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "dbInstances": [ - { - "dbInstanceId": "ed5cb985-526f-4c54-9ae0-40288593de65", - "dbInstanceName": "database" - } - ], - "userGroups": [ + "parameterGroups": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + ] } ``` @@ -3748,37 +4150,28 @@ GET /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v3.0/notification-groups +POST /v3.0/parameter-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------------| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "notificationGroupName": "dev-team-noti", - "notifyEmail": false, - "isEnable": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65" - ], - "userGroupIds": [ - "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0" - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -3787,49 +4180,84 @@ POST /v3.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|------|------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "parameterGroupId": "parameterGroupId-example" +} +``` + +

+
--- -### 알림 그룹 수정하기 +### 파라미터 그룹 삭제하기 ```http -PUT /v3.0/notification-groups/{notificationGroupId} +DELETE /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부 | -| notifySms | Body | Boolean | X | SMS 알림 여부 | -| isEnabled | Body | Boolean | X | 활성화 여부 | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +이 API는 요청 본문을 요구하지 않습니다. -
예시 -

+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -```json -{ - "notifyEmail": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65", - "d51b7da0-682f-47ff-b588-b739f6adc740" - ] -} +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 파라미터 그룹 상세 보기 + +```http +GET /v3.0/parameter-groups/{parameterGroupId} ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3840,7 +4268,19 @@ PUT /v3.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ + { + "applyType": "BOTH" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3849,61 +4289,71 @@ PUT /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 수정하기 ```http -DELETE /v3.0/notification-groups/{notificationGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 모니터링 +이 API는 응답 본문을 반환하지 않습니다. -### Metric 목록 보기 +--- + +### 파라미터 그룹 복사하기 ```http -GET /v3.0/metrics +POST /v3.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|--------|-----------| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | Enum | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -3915,12 +4365,7 @@ GET /v3.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "measureName": "CPU_USAGE", - "unit": "%" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3929,56 +4374,29 @@ GET /v3.0/metrics --- -### 통계 정보 조회 +### 파라미터 수정하기 ```http -GET /v3.0/metric-statistics +PUT /v3.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|----------|----|-----------------------------------| -| dbInstanceId | Query | UUID | O | DB 인스턴스의 식별자 | -| measureNames | Query | Array | O | 조회 지표 목록
- 최소 크기: `1` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| interval | Query | Number | X | 조회 간격 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|-----------|----------| -| metricStatistics | Body | Array | 통계 정보 목록 | -| metricStatistics.measureName | Body | Enum | 측정 항목 유형 | -| metricStatistics.unit | Body | String | 측정값 단위 | -| metricStatistics.values | Body | Array | 측정값 목록 | -| metricStatistics.values.timestamp | Body | Timestamp | 측정 시간 | -| metricStatistics.values.value | Body | Object | 측정값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "metricStatistics": [ + "modifiedParameters": [ { - "measureName": "MYSQL_STATUS", - "unit": "", - "values": [ - [ - 1679298540, - "1" - ], - [ - 1679298600, - "1" - ], - [ - 1679298660, - "1" - ] - ] + "value": "value-example" } ] } @@ -3987,58 +4405,53 @@ GET /v3.0/metric-statistics

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 +### 파라미터 그룹 재설정하기 -### 이벤트 카테고리 +```http +PUT /v3.0/parameter-groups/{parameterGroupId}/reset +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 이벤트 목록 조회 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 프로젝트 정보 + +### 프로젝트 멤버 목록 보기 ```http -GET /v3.0/events +GET /v3.0/project/members ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| eventCategoryType | Query | Enum | O | 조회할 이벤트 카테고리 유형
- `ALL`: 전체
- `INSTANCE`: DB 인스턴스
- `BACKUP`: 백업
- `DB_SECURITY_GROUP`: DB 보안 그룹
- `TENANT`: 테넌트 | -| sourceId | Query | String | X | 이벤트가 발생한 대상 리소스의 식별자 | -| keyword | Query | String | X | 이벤트 메시지에 포함된 문자열 검색어 | -| ascendingOrder | Query | Enum | X | 이벤트 메시지 정렬 순서
- `ASC`: 오름차순
- `DESC`: 내림차순
- 기본값: `DESC` | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|---------------------------------------| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메시지 목록 | -| events.messages.langCode | Body | String | 언어 코드 | -| events.messages.message | Body | String | 이벤트 메시지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -4050,32 +4463,9 @@ GET /v3.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 28, - "events": [ + "members": [ { - "eventCategoryType": "INSTANCE", - "eventCode": "INSTC_02_01", - "sourceId": "76f00947-356e-4a20-8922-428368cc45ed", - "sourceName": "db-instance", - "messages": [ - { - "langCode": "EN", - "message": "DB instance started" - }, - { - "langCode": "JA", - "message": "DBインスタンスの起動" - }, - { - "langCode": "KO", - "message": "DB 인스턴스 시작" - }, - { - "langCode": "ZH", - "message": "DB instance started" - } - ], - "eventYmdt": "2023-03-20T16:31:59+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -4086,10 +4476,10 @@ GET /v3.0/events --- -### 구독 가능한 이벤트 코드 목록 보기 +### 리전 목록 보기 ```http -GET /v3.0/event-codes +GET /v3.0/project/regions ``` #### 요청 @@ -4098,11 +4488,11 @@ GET /v3.0/event-codes #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|-------|-------------| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

@@ -4114,10 +4504,9 @@ GET /v3.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "regions": [ { - "eventCode": "INSTC_05_01", - "eventCategoryType": "INSTANCE" + "isEnabled": false } ] } @@ -4127,3 +4516,4 @@ GET /v3.0/event-codes

--- + diff --git a/ko/api-guide-v3.0-ngoic.md b/ko/api-guide-v3.0-ngoic.md index 65f2a603..ca6096ba 100644 --- a/ko/api-guide-v3.0-ngoic.md +++ b/ko/api-guide-v3.0-ngoic.md @@ -1,35 +1,32 @@ ## Database > RDS for MySQL > API 가이드 -| 리전 | 엔드포인트 | -|-----------|-----------------------------------------------| -| 한국(판교) 리전 | https://kr4-rds-mysql-api.ngoic.com | +## RDS for MySQL API 공통 정보 -## 인증 및 권한 +### 인증 및 권한 -API를 사용하려면 인증에 필요한 `User Access Key ID`와 `Secret Access Key`가 필요합니다. 콘솔 우측 상단의 계정에 마우스 포인터를 올리면 표시되는 드롭다운 메뉴에서 API 보안 설정을 선택해 생성할 수 있습니다. -생성된 Key는 Appkey와 함께 요청 Header에 포함해야 합니다. +RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. +발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------|--------|--------|----|-------------------------------------------------------------| -| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-TC-AUTHENTICATION-ID | Header | String | O | API 보안 설정 메뉴의 User Access Key ID | -| X-TC-AUTHENTICATION-SECRET | Header | String | O | API 보안 설정 메뉴의 Secret Access Key | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | +| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | -또한 프로젝트 멤버 역할에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER`로 구분하여 권한을 부여할 수 있습니다. +또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. -* `RDS for MySQL ADMIN` 권한은 모든 기능을 사용 가능합니다. -* `RDS for MySQL VIEWER` 권한은 정보를 조회하는 기능만 사용 가능합니다. +* `RDS for MySQL ADMIN` 역할은 API 실행에 필요한 모든 권한이 부여됩니다. +* `RDS for MySQL VIEWER` 역할은 정보를 조회하는 권한만 부여됩니다. * DB 인스턴스를 생성, 수정, 삭제하거나, DB 인스턴스를 대상으로 하는 어떠한 기능도 사용할 수 없습니다. - * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용 가능합니다. + * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용할 수 있습니다. API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같은 오류가 발생합니다. -| resultCode | resultMessage | 설명 | -|------------|---------------|-------------| -| 80401 | Unauthorized | 인증에 실패했습니다. | -| 80403 | Forbidden | 권한이 없습니다. | +| resultCode | resultMessage | 설명 | +|------------|---------------|-----| +| 80401 | Unauthorized | 인증에 실패했습니다. | +| 80403 | Forbidden | 권한이 없습니다. | -## 응답 공통 정보 +### 응답 공통 정보 모든 API 요청에 '200 OK'로 응답합니다. 자세한 응답 결과는 응답 본문의 헤더를 참고합니다. @@ -45,47 +42,66 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 ``` #### 필드 -| 이름 | 형식 | 설명 | -|---------------|---------|-----------------------------------------| -| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | -| resultMessage | String | 결과 메시지 | -| isSuccessful | Boolean | 성공 여부 | - - -## DB 엔진 유형 - -| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 정보 | -|--------------|----------|-----------------|--------| -| MYSQL\_V5633 | X | X | NATIVE | -| MYSQL\_V5715 | O | O | NATIVE | -| MYSQL\_V5719 | O | O | NATIVE | -| MYSQL\_V5726 | O | O | NATIVE | -| MYSQL\_V5731 | X | X | NATIVE | -| MYSQL\_V5733 | O | X | NATIVE, SHA256 | -| MYSQL\_V5737 | O | O | NATIVE, SHA256 | -| MYSQL\_V8018 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8023 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8028 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8032 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8033 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8034 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8405 | O | O | CACHING_SHA2 | +| 이름 | 형식 | 설명 | +|-----|-----|-----| +| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | +| resultMessage | String | 결과 메시지 | +| isSuccessful | Boolean | 성공 여부 | + +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(대구) 리전 | https://ngoic-kr4-rds-proxy.cloud.toastoven.net | + +### DB 엔진 유형 + +| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | +|------------|----------|------------------|------------| +| MYSQL_V5633 | X | X | NATIVE | +| MYSQL_V5715 | O | O | NATIVE | +| MYSQL_V5719 | O | O | NATIVE | +| MYSQL_V5726 | O | O | NATIVE | +| MYSQL_V5731 | X | X | NATIVE | +| MYSQL_V5733 | O | X | NATIVE, SHA256 | +| MYSQL_V5737 | O | O | NATIVE, SHA256 | +| MYSQL_V8018 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8023 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8028 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8032 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8033 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8034 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8405 | O | O | CACHING_SHA2 | +| MYSQL_V8406 | O | O | CACHING_SHA2 | +| MYSQL_V8407 | O | O | CACHING_SHA2 | +| MYSQL_V8408 | O | O | CACHING_SHA2 | * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## 프로젝트 정보 +## DB 보안 그룹 -### 리전 목록 보기 +### DB 보안 그룹 진행 상태 + +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | + +### DB 보안 그룹 목록 보기 ```http -GET /v3.0/project/regions +GET /v3.0/db-security-groups ``` #### 요청 @@ -94,11 +110,15 @@ GET /v3.0/project/regions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------|------|---------|----------------------------------------------------------------------------| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -110,63 +130,51 @@ GET /v3.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ - { - "regionCode": "KR1", - "isEnabled": true - }, - { - "regionCode": "KR2", - "isEnabled": true - }, + "dbSecurityGroups": [ { - "regionCode": "JP1", - "isEnabled": true + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } ``` +

--- -### 프로젝트 멤버 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v3.0/project/members +POST /v3.0/db-security-groups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|--------|-----------------| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ { - "memberId": "1b1d3627-507a-49ea-8cb7-c86dfa9caa58", - "memberName": "홍길동", - "emailAddress": "gildong.hong@nhn.com", - "phoneNumber": "+821012345678" + "description": "description-example" } ] } @@ -175,29 +183,11 @@ GET /v3.0/project/members

---- - -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 - -```http -GET /v3.0/db-flavors -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -209,14 +199,7 @@ GET /v3.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbFlavorName": "m2.c1m2", - "ram": 2048, - "vcpus": 1 - } - ] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -225,76 +208,63 @@ GET /v3.0/db-flavors --- -## 네트워크 - -### 서브넷 목록 보기 +### DB 보안 그룹 삭제하기 ```http -GET /v3.0/network/subnets +DELETE /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|---------|------------------| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | UUID | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | - -

예시 -

+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "subnets": [ - { - "subnetId": "1b2a9b23-0725-4b92-8c78-35db66b8ad9f", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/24", - "usingGateway": true, - "availableIpCount": 240 - } - ] -} -``` +#### 응답 -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -## DB 엔진 - -### DB 엔진 목록 보기 +### DB 보안 그룹 상세 보기 ```http -GET /v3.0/db-versions +GET /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|---------|-----------------------| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroup | Body | Object | DB 보안 그룹 | +| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | +| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | +| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | +| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | +| dbSecurityGroup.rules.cidr | Body | String | CIDR | +| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | +| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -306,13 +276,19 @@ GET /v3.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ - { - "dbVersion": "MYSQL_V8028", - "dbVersionName": "MySQL 8.0.28", - "restorableFromObs": true - } - ] + "dbSecurityGroup": { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -321,61 +297,59 @@ GET /v3.0/db-versions --- -## 데이터 스토리지 - -### 데이터 스토리지 타입 목록 보기 +### DB 보안 그룹 수정하기 ```http -GET /v3.0/storage-types +PUT /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|-------|----------------| -| storageTypes | Body | Array | 데이터 스토리지 타입 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "storageTypes": [ - "General SSD", - "General HDD" - ] + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 데이터 스토리지 목록 보기 +### DB 보안 그룹 규칙 삭제하기 ```http -GET /v3.0/storages +DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------|------|-------|-------------| -| storages | Body | Array | 데이터 스토리지 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -387,10 +361,7 @@ GET /v3.0/storages "resultMessage": "SUCCESS", "isSuccessful": true }, - "storages": [ - "General SSD", - "General HDD" - ] + "jobId": "jobId-example" } ``` @@ -399,50 +370,51 @@ GET /v3.0/storages --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### DB 보안 그룹 규칙 생성하기 ```http -GET /v3.0/jobs/{jobId} +POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | + +

예시 +

+ +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------|-----|------|----|---------| -| jobId | URL | UUID | O | 작업의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------|------|----------|-----------------------------------| -| jobId | Body | UUID | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태 | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | Enum | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | UUID | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -454,16 +426,7 @@ GET /v3.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "0ddb042c-5af6-43fb-a914-f4dd0540eb7c", - "jobStatus": "RUNNING", - "resourceRelations": [ - { - "resourceType": "DB_INSTANCE", - "resourceId": "56b39dcf-65eb-47ec-9d4f-09f160ba2266" - } - ], - "createdYmdt": "2023-02-22T20:47:12+09:00", - "updatedYmdt": "2023-02-22T20:49:46+09:00" + "jobId": "jobId-example" } ``` @@ -472,27 +435,52 @@ GET /v3.0/jobs/{jobId} --- -## DB 인스턴스 그룹 - -### DB 인스턴스 그룹 목록 보기 +### DB 보안 그룹 규칙 수정하기 ```http -GET /v3.0/db-instance-groups +PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | + +

예시 +

+ +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------|------|----------|--------------------------------------------------------------------------| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -504,14 +492,7 @@ GET /v3.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ - { - "dbInstanceGroupId": "05de0746-89fd-49c8-94f9-9c5b1df97009", - "replicationType": "STANDALONE", - "createdYmdt": "2023-02-13T17:35:20+09:00", - "updatedYmdt": "2023-02-13T17:35:20+09:00" - } - ] + "jobId": "jobId-example" } ``` @@ -520,32 +501,26 @@ GET /v3.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v3.0/db-instance-groups/{dbInstanceGroupId} +GET /v3.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|-----------------| -| dbInstanceGroupId | URL | UUID | O | DB 인스턴스 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |

예시

@@ -557,17 +532,11 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "36617a8e-0df8-4b16-b6ea-6306019e95da", - "replicationType": "STANDALONE", - "dbInstances": [ + "dbVersions": [ { - "dbInstanceId": "6d2db0ef-fe9b-4ed4-97b1-d97fcb4cf1b8", - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE" + "restorableFromObs": false } - ], - "createdYmdt": "2023-03-03T17:38:14+09:00", - "updatedYmdt": "2023-03-03T17:38:14+09:00" + ] } ``` @@ -600,8 +569,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | `BACKING_UP` | 백업 중 | | `CANCELING` | 취소 중 | | `CREATING` | 생성 중 | -| `CREATING_SCHEMA` | DB 스키마 생성 중 | -| `CREATING_USER` | 사용자 생성 중 | +| `CREATING_SCHEMA` | DB 스키마 생성 중 | +| `CREATING_USER` | 사용자 생성 중 | | `DELETING` | 삭제 중 | | `DELETING_SCHEMA` | DB 스키마 삭제 중 | | `DELETING_USER` | 사용자 삭제 중 | @@ -620,8 +589,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | `STARTING` | 시작 중 | | `STOPPING` | 정지 중 | | `SYNCING_SCHEMA` | DB 스키마 동기화 중 | -| `SYNCING_USER` | 사용자 동기화 중 | -| `UPDATING_USER` | 사용자 수정 중 | +| `SYNCING_USER` | 사용자 동기화 중 | +| `UPDATING_USER` | 사용자 수정 중 | ### DB 인스턴스 목록 보기 @@ -635,20 +604,20 @@ GET /v3.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | -| dbInstances.dbPort | Body | Number | DB 포트 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태 | -| dbInstances.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstances.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstances | Body | Array | DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | +| dbInstances.dbPort | Body | Number | DB 포트 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbInstances.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstances.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -662,17 +631,7 @@ GET /v3.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "createdYmdt": "2023-01-23T12:03:13+09:00", - "updatedYmdt": "2023-02-02T17:20:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -683,44 +642,104 @@ GET /v3.0/db-instances --- -### DB 인스턴스 상세 보기 +### DB 인스턴스 생성하기 ```http -GET /v3.0/db-instances/{dbInstanceId} +POST /v3.0/db-instances ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| authenticationPlugin | Body | Enum | X | 인증 Plugin
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | TLS Option
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE", + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| dbPort | Body | Number | DB 포트 | -| dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| progressStatus | Body | Enum | DB 인스턴스의 현재 작업 진행 상태 | -| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | -| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | -| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | -| supportAuthenticationPlugin | Body | Boolean | 인증 플러그인 지원 여부 | -| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | -| needMigration | Body | Boolean | 마이그레이션 필요 여부 | -| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -732,26 +751,7 @@ GET /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "dbFlavorId": "e9ed4ef6-78d7-46fa-ace9-32481e97f3b7", - "parameterGroupId": "b03e8b13-de27-4d04-a488-ff5689589372", - "dbSecurityGroupIds": ["01908c35-d2c9-4852-baf0-17f06ec42c03"], - "notificationGroupIds": ["83a62a33-ddbf-4a04-8653-e54463d5b1ac"], - "useDeletionProtection": false, - "supportAuthenticationPlugin": true, - "needToApplyParameterGroup": false, - "needMigration": false, - "supportDbVersionUpgrade": true, - "createdYmdt": "2022-11-23T12:03:13+09:00", - "updatedYmdt": "2022-12-02T17:20:17+09:00" + "jobId": "jobId-example" } ``` @@ -760,131 +760,769 @@ GET /v3.0/db-instances/{dbInstanceId} --- -### DB 인스턴스 생성하기 +### 오브젝트 스토리지를 이용한 DB 인스턴스 복원 ```http -POST /v3.0/db-instances +POST /v3.0/db-instances/restore-from-obs ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|---------------------------------------------------------------------| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbUserName | Body | String | O | DB 사용자 계정명 | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| imageId | Body | UUID | X | 이미지의 식별자 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | +| restore.username | Body | String | O | NHN Cloud 계정 혹은 IAM 멤버 ID | +| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | +| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | +| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "dbVersion": "ENUM_VALUE", + "useHighAvailability": false, + "imageId": "550e8400-e29b-41d4-a716-446655440000", + "pingInterval": 3, "storage": { - "storageType": "General SSD", + "storageType": "ENUM_VALUE", "storageSize": 20 }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, "backup": { - "backupPeriod": 1, + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": true, "backupSchedules": [ { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR" + "backupWndDuration": "HALF_AN_HOUR" } ] - } -} -``` + }, + "restore": { + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" + }, + "useDefaultNotification": false, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 인스턴스 삭제하기 + +```http +DELETE /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 상세 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| dbPort | Body | Number | DB 포트 | +| dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | +| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | +| supportAuthenticationPlugin | Body | Boolean | 인증 plugin 지원 여부 | +| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | +| needMigration | Body | Boolean | 마이그레이션 필요 여부 | +| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "dbFlavorId": "dbFlavorId-example", + "parameterGroupId": "parameterGroupId-example", + "dbSecurityGroupIds": [], + "notificationGroupIds": [], + "useDeletionProtection": false, + "supportAuthenticationPlugin": false, + "needToApplyParameterGroup": false, + "needMigration": false, + "supportDbVersionUpgrade": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ +--- + +### DB 인스턴스 수정하기 + +```http +PUT /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbVersion | Body | Enum | X | DB 엔진 버전 코드 | +| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
- 기본값: `false` | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbPort": 1, + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "useDummy": false, + "dbSecurityGroupIds": [], + "executeBackup": false, + "useOnlineFailover": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 백업하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/backup +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "backupName": "backupName" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 백업 정보 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backupPeriod | Body | Number | 백업 보관 기간(일) | +| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | +| backupRetryCount | Body | Number | 백업 재시도 횟수 | +| replicationRegion | Body | Enum | 백업 복제 리전
- KR4: `한국(대구)` | +| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration
- HALF_AN_HOUR
- ONE_HOUR
- ONE_HOUR_AND_HALF
- TWO_HOURS
- TWO_HOURS_AND_HALF
- THREE_HOURS | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "backupPeriod": 1, + "ftwrlWaitTimeout": 1, + "backupRetryCount": 1, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +--- + +### 백업 정보 수정하기 + +```http +PUT /v3.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +
예시 +

+ +```json +{ + "backupPeriod": 0, + "ftwrlWaitTimeout": 0, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 오브젝트 스토리지로 백업 + +```http +POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | + +
예시 +

+ +```json +{ + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 테스트 용 DB 이미지 메타 변경 + +```http +PUT /v3.0/db-instances/{dbInstanceId}/change-image-meta +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 스키마 목록 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSchemas | Body | Array | DB 스키마 목록 | +| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | +| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | +| dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbSchemas": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### DB 스키마 생성하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbSchemaName | Body | String | O | DB 스키마 이름
- 최대 길이: `64`
- 영문 시작, 영문/숫자/_ 허용, 1~64자, MySQL 예약어 불가 | + +
예시 +

+ +```json +{ + "dbSchemaName": "dbSchemaName-example" +} +```

#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 스키마 삭제하기 + +```http +DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbSchemaId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 사용자 목록 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/db-users +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbUsers | Body | Array | DB 사용자 목록 | +| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | +| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | +| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- STABLE
- CREATING
- UPDATING
- SYNCING
- DELETING
- DELETED | +| dbUsers.createdYmdt | Body | DateTime | 생성 일시 | +| dbUsers.updatedYmdt | Body | DateTime | 수정 일시 | +| dbUsers.authenticationPlugin | Body | Enum | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| dbUsers.tlsOption | Body | Enum | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbUsers": [ + { + "tlsOption": "NONE" + } + ] +} +``` + +

+
--- -### DB 인스턴스 수정하기 +### DB 사용자 생성하기 ```http -PUT /v3.0/db-instances/{dbInstanceId} +POST /v3.0/db-instances/{dbInstanceId}/db-users ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|--------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbPort | Body | Number | X | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbVersion | Body | Enum | X | DB 엔진 유형 | -| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
기본값: `false` | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| host | Body | String | O | DB 사용자 계정의 호스트명
- 최대 길이: `45` | +| authorityType | Body | Enum | O | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |
예시

```json { - "dbInstanceName": "db-instance2", - "description": "description2", - "dbPort": 10001, - "dbSecurityGroupIds": [], - "executeBackup": true + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "host": "host-example", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" } ``` @@ -893,70 +1531,106 @@ PUT /v3.0/db-instances/{dbInstanceId} #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### DB 인스턴스 삭제하기 +### DB 사용자 삭제하기 ```http -DELETE /v3.0/db-instances/{dbInstanceId} +DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | ---- - -### DB 인스턴스 재시작하기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/restart +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} ``` -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +

+
-#### 응답 +--- -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +### DB 사용자 수정하기 ---- -### DB 인스턴스 강제 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/force-restart +PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserId | URL | UUID | O | | +| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| authorityType | Body | Enum | X | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "dbPassword": "dbPassword", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` +

+
#### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -967,282 +1641,228 @@ POST /v3.0/db-instances/{dbInstanceId}/force-restart "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ```

- --- -### DB 인스턴스 시작하기 +### DB 인스턴스 삭제 보호 설정 변경 ```http -POST /v3.0/db-instances/{dbInstanceId}/start +PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | + +
예시 +

+ +```json +{ + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 정지하기 +### DB 인스턴스 강제 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/stop +POST /v3.0/db-instances/{dbInstanceId}/force-restart ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 백업하기 +### 고가용성 수정하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/backup +PUT /v3.0/db-instances/{dbInstanceId}/high-availability ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|-----------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupName | Body | String | O | 백업을 식별할 수 있는 이름 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -### DB 인스턴스 백업 후 내보내기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage +```json +{ + "useHighAvailability": false, + "pingInterval": 1 +} ``` -#### 요청 +

+
+ +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 복제하기 +### 고가용성 일시 중지하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/replicate +POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록
- 기본값: 원본 DB 인스턴스 값 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: 원본 DB 인스턴스 값 | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄)
- 기본값: 원본 DB 인스턴스 값 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00`
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간
- 기본값: 원본 DB 인스턴스 값 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance-replicate", - "description": "description", - "dbPort": 11000, - "network": { - "availabilityZone": "kr-pub-a" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "storage": { - "stroageSize": 100 - } + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 승격하기 +### 고가용성 복구하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/promote +POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### 복원 정보 조회 +### 고가용성 다시 시작하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/restoration-info +POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | -| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | -| restorableBackups | Body | Array | 복원 가능한 백업 목록 | -| restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | -| restorableBackups.backup.backupName | Body | String | 백업 이름 | -| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | -| restorableBackups.backup.backupType | Body | Enum | 백업 유형
  • `AUTO`: 자동
  • `MANUAL`: 수동
| -| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
  • `BACKING_UP`: 백업 중인 경우
  • `COMPLETED`: 백업이 완료된 경우
  • `DELETING`: 백업이 삭제 중인 경우
  • `DELETED`: 백업이 삭제된 경우
  • `ERROR`: 오류가 발생한 경우
| -| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| restorableBackups.backup.dbVersion | Body | String | DB 엔진 유형 | -| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | -| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | -| restorableBackups.backup.binLogPosition | Body | Number | 바이너리 로그 파일 위치 | -| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | -| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | -| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "oldestRestorableYmdt": "2023-07-09T16:33:33+09:00", - "latestRestorableYmdt": "2023-07-10T15:44:44+09:00", - "restorableBackups": [ - { - "backup": { - "backupId": "145d889a-fe08-474f-8f58-bde576ff96a9", - "backupName": "example-backup-name", - "backupStatus": "COMPLETED", - "dbInstanceId": "dba1be25-9429-4589-9716-7fb6daad7cb9", - "dbInstanceName": "original-db-instance-name", - "dbVersion": "MYSQL_V8028", - "backupType": "MANUAL", - "backupSize": 8299904, - "useBackupLock": true, - "failoverCount": 0, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 367916037, - "createdYmdt": "2023-07-10T15:44:44+09:00", - "updatedYmdt": "2023-07-10T15:46:07+09:00" - }, - "restorableBinLogs": [ - "mysql-bin.000001" - ] - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ``` @@ -1251,39 +1871,25 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info --- -### 복원될 마지막 쿼리 조회 +### 고가용성 분리하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query +POST /v3.0/db-instances/{dbInstanceId}/high-availability/split ``` -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|------|----|-----------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restoreType | Query | Enum | O | 복원 타입 종류

  • `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
  • `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
| - -#### restoreType이 `TIMESTAMP`인 경우 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-------|----------|----|-------------------------------------------| -| restoreYmdt | Query | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +#### 요청 -#### restoreType이 `BINLOG`인 경우 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------|-------|--------|----|--------------------| -| backupId | Query | UUID | O | 복원에 사용할 백업의 식별자 | -| binLogFileName | Query | String | O | 복원에 사용할 바이너리 로그 이름 | -| binLogPosition | Query | Number | O | 복원에 사용할 바이너리 로그 위치 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|----------|--------------------------------------| -| executedYmdt | Body | DateTime | 쿼리 수행 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| lastQuery | Body | String | 마지막 수행 쿼리 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1295,8 +1901,7 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query "resultMessage": "SUCCESS", "isSuccessful": true }, - "executedYmdt": "2023-03-17T14:02:29+09:00", - "lastQuery": "INSERT INTO `test`.`test`SET @1='0123'" + "jobId": "jobId-example" } ``` @@ -1305,303 +1910,189 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query --- -### 복원 +### 로그 파일 목록 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/restore +GET /v3.0/db-instances/{dbInstanceId}/log-files ``` -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restore | Body | Object | O | 복원 정보 객체 | -| restore.restoreType | Body | Enum | O | 복원 타입 종류

  • `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
  • `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
  • `BACKUP`: 기존에 생성한 백업을 이용한 스냅숏 복원 타입
| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
  • 최솟값: `3306`
  • 최댓값: `43306`
| -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
  • 기본값: `false`
| -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
  • 기본값: `3`
  • 최솟값: `1`
  • 최댓값: `600`
| -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
  • 기본값: `false`
| -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
  • 기본값: `false`
| -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
  • 예시: `kr-pub-a`
| -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
  • 최솟값: `20`
  • 최댓값: `2048`
| -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
  • 최솟값: `0`
  • 최댓값: `730`
| -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
  • 기본값: `1800`
  • 최솟값: `0`
  • 최댓값: `21600`
| -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
  • 기본값: `0`
  • 최솟값: `0`
  • 최댓값: `10`
| -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
  • `KR1`: 한국(판교)
  • `KR2`: 한국(평촌)
  • `JP1`: 일본(도쿄)
| -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
  • 기본값: `true`
| -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
  • 예시: `00:00:00`
| -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
  • `HALF_AN_HOUR`: 30분
  • `ONE_HOUR`: 1시간
  • `ONE_HOUR_AND_HALF`: 1시간 30분
  • `TWO_HOURS`: 2시간
  • `TWO_HOURS_AND_HALF`: 2시간 30분
  • `THREE_HOURS`: 3시간
| -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | +이 API는 요청 본문을 요구하지 않습니다. -#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|----------|----|------------------------------------------------------------------------------------------------| -| restore.restoreYmdt | Body | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD)
복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능하다. | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| logFiles | Body | Array | 로그 파일 목록 | +| logFiles.logFileName | Body | String | 로그 파일 이름 | +| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- ERROR
- BINLOG
- GENERAL
- SLOW_QUERY
- AUDIT
- BACKUP | +| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | +| logFiles.createdYmdt | Body | DateTime | 생성 일시 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "TIMESTAMP", - "restoreYmdt": "2023-07-10T15:44:44+09:00" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "logFiles": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) +--- + +### 로그 파일 내보내기 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------------|------|--------|----|--------------------| -| restore.backupId | Body | UUID | O | 복원에 사용할 백업의 식별자 | -| restore.binLog | Body | Object | O | 바이너리 로그 정보 객체 | -| restore.binLog.binLogFileName | Body | String | O | 복원에 사용할 바이너리 로그 이름 | -| restore.binLog.binLogPosition | Body | Number | O | 복원에 사용할 바이너리 로그 위치 | +```http +POST /v3.0/db-instances/{dbInstanceId}/log-files/export +``` -* 바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. +#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| logFileNames | Body | Array | O | 로그 파일 이름 목록 | +| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BINLOG", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36", - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 1234567 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "logFileNames": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

-#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|------|------------------------------|-----------------| -| restore.backupId | Body | UUID | O(restoreType이 `BACKUP`인 경우) | 복원에 사용할 백업의 식별자 | - +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BACKUP", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

+--- + +### 네트워크 정보 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/network-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | +| subnet | Body | Object | 서브넷 객체 | +| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnet.subnetCidr | Body | String | 서브넷의 CIDR | +| endPoints | Body | Array | 접속 정보 목록 | +| endPoints.domain | Body | String | 도메인 | +| endPoints.ipAddress | Body | String | IP 주소 | +| endPoints.endPointType | Body | String | 접속 정보 타입 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "availabilityZone": "availabilityZone-example", + "subnet": { + "subnetId": "subnetId-example", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example" + }, + "endPoints": [ + { + "endPointType": "endPointType-example" + } + ] +} +``` +

+
--- -### 오브젝트 스토리지로부터 복원 +### 네트워크 정보 수정하기 ```http -POST /v3.0/db-instances/restore-from-obs +PUT /v3.0/db-instances/{dbInstanceId}/network-info ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|----------------------------------------------------------------------------------------| -| restore | Body | Object | O | 복원 정보 객체 | -| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | -| restore.username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | -| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | -| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
  • 최솟값: `3306`
  • 최댓값: `43306`
| -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
  • 기본값: `false`
| -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
  • 기본값: `3`
  • 최솟값: `1`
  • 최댓값: `600`
| -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
  • 기본값: `false`
| -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
  • 기본값: `false`
| -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
  • 예시: `kr-pub-a`
| -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
  • 최솟값: `20`
  • 최댓값: `2048`
| -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
  • 최솟값: `0`
  • 최댓값: `730`
| -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
  • 기본값: `1800`
  • 최솟값: `0`
  • 최댓값: `21600`
| -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
  • 기본값: `0`
  • 최솟값: `0`
  • 최댓값: `10`
| -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
  • `KR1`: 한국(판교)
  • `KR2`: 한국(평촌)
  • `JP1`: 일본(도쿄)
| -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
  • 기본값: `true`
| -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
  • 예시: `00:00:00`
| -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
  • `HALF_AN_HOUR`: 30분
  • `ONE_HOUR`: 1시간
  • `ONE_HOUR_AND_HALF`: 1시간 30분
  • `TWO_HOURS`: 2시간
  • `TWO_HOURS_AND_HALF`: 2시간 30분
  • `THREE_HOURS`: 3시간
| - - +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbVersion": "MYSQL_V8028", - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "tenantId":"tenant-id", - "username":"username", - "password":"password", - "targetContainer":"targetContainer", - "objectPath":"objectPath" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "usePublicAccess": false } ``` @@ -1610,30 +2101,48 @@ POST /v3.0/db-instances/restore-from-obs #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +

예시 +

---- +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+--- -### DB 인스턴스 삭제 보호 설정 변경하기 +### DB 인스턴스 승격하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection +POST /v3.0/db-instances/{dbInstanceId}/promote ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1644,7 +2153,8 @@ PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ``` @@ -1653,137 +2163,203 @@ PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection --- -### 고가용성 수정하기 +### DB 인스턴스 복제하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/high-availability +POST /v3.0/db-instances/{dbInstanceId}/replicate ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|---------|----|------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부 | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | X | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | X | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | X | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | ---- - -### 고가용성 다시 시작하기 +

예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} ``` -#### 요청 +

+
-이 API는 요청 본문을 요구하지 않습니다. +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | -#### 응답 +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 고가용성 일시 중지하기 +### DB 인스턴스 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause +POST /v3.0/db-instances/{dbInstanceId}/restart ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | -### 고가용성 복구하기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair +```json +{ + "useOnlineFailover": false, + "executeBackup": false, + "waitReplicationDelay": false, + "useReadOnly": false +} ``` -#### 요청 +

+
-이 API는 요청 본문을 요구하지 않습니다. +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | -#### 응답 +
예시 +

-| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### 고가용성 분리하기 +### DB 인스턴스 복원 정보 조회 ```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/split +GET /v3.0/db-instances/{dbInstanceId}/restoration-info ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 데이터 스토리지 정보 보기 +### 복원될 마지막 쿼리 조회 ```http -GET /v3.0/db-instances/{dbInstanceId}/storage-info +GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------|------|--------|--------------------------------------------------------------------------------------| -| storageType | Body | Enum | 데이터 스토리지 타입 | -| storageSize | Body | Number | 데이터 스토리지 크기(GB) | -| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- `DETACHED`: 부착되지 않음
- `ATTACHED`: 부착됨
- `DELETED`: 삭제됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| executedYmdt | Body | DateTime | 쿼리 수행 일시 | +| lastQuery | Body | String | 마지막 수행 쿼리 |
예시

@@ -1795,66 +2371,142 @@ GET /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "General SSD", - "storageSize": 20, - "storageStatus": "ATTACHED" + "executedYmdt": "2023-12-31T15:00:00+09:00", + "lastQuery": "lastQuery-example" } ```

- --- -### 데이터 스토리지 정보 수정하기 +### DB 인스턴스 복원 ```http -PUT /v3.0/db-instances/{dbInstanceId}/storage-info +POST /v3.0/db-instances/{dbInstanceId}/restore ``` -#### 요청 +#### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: 현재값
- 최댓값: `2048` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| imageId | Body | UUID | X | 이미지의 식별자 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.restoreType | Body | Enum | O | 복원 타입
- TIMESTAMP: `복원 가능한 시간 이내의 시간을 이용한 시점 복원`
- BINLOG: `복원 가능한 바이너리 로그 위치를 이용한 시점 복원`
- BACKUP: `기존에 생성한 백업을 이용한 스냅숏 복원` | +| restore.binLog.binLogFileName | Body | String | X | 복원에 사용할 바이너리 로그 이름 | +| restore.binLog.binLogPosition | Body | Object | X | 복원에 사용할 바이너리 로그 위치 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -#### 응답 +#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.restoreYmdt | Body | DateTime | X | DB 인스턴스 복원 일시 | ---- +복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. -### 백업 정보 보기 +#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) -```http -GET /v3.0/db-instances/{dbInstanceId}/backup-info -``` +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | +| restore.binLog | Body | Object | X | 복원에 사용할 바이너리 로그 정보 객체 | -#### 요청 +바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. -이 API는 요청 본문을 요구하지 않습니다. +#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "useHighAvailability": false, + "imageId": "550e8400-e29b-41d4-a716-446655440000", + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "restoreType": "TIMESTAMP", + "binLog": { + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + } + } + }, + "useDefaultNotification": false, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|---------|----------------| -| backupPeriod | Body | Number | 백업 보관 기간(일) | -| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | -| backupRetryCount | Body | Number | 백업 재시도 횟수 | -| replicationRegion | Body | Enum | 백업 복제 리전 | -| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | -| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1866,100 +2518,73 @@ GET /v3.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "backupPeriod": 1, - "ftwrlWaitTimeout": 1800, - "backupRetryCount": 0, - "replicationRegion": null, - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] + "jobId": "jobId-example" } ```

- --- -### 백업 정보 수정하기 +### DB 인스턴스 시작하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/backup-info +POST /v3.0/db-instances/{dbInstanceId}/start ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------------------------|------|---------|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "backupPeriod": 5, - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndBgnTime": "01:00:00", - "backupWndDuration": "TWO_HOURS" - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 네트워크 정보 보기 +### DB 인스턴스 정지하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/network-info +POST /v3.0/db-instances/{dbInstanceId}/stop ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------------------------------------------------------------------------------------------------------------------------------| -| availabilityZone | Body | Enum | DB 인스턴스를 생성할 가용성 영역 | -| subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | UUID | 서브넷의 식별자 | -| subnet.subnetName | Body | UUID | 서브넷을 식별할 수 있는 이름 | -| subnet.subnetCidr | Body | UUID | 서브넷의 CIDR | -| endPoints | Body | Array | 접속 정보 목록 | -| endPoints.domain | Body | String | 도메인 | -| endPoints.ipAddress | Body | String | IP 주소 | -| endPoints.endPointType | Body | Enum | 접속 정보 타입
-`EXTERNAL`: 외부 접속 도메인
-`INTERNAL`: 내부 접속 도메인
-`PUBLIC`: (Deprecated) 외부 접속 도메인
-`PRIVATE`: (Deprecated) 내부 접속 도메인 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1971,19 +2596,7 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "kr-pub-a", - "subnet": { - "subnetId": "bd453789-34ae-416c-9f78-05b9e43a46be", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/16" - }, - "endPoints": [ - { - "domain": "ea548a78-d85f-43b4-8ddf-c88d999b9905.internal.kr1.mysql.rds.nhncloudservice.com", - "ipAddress": "192.168.0.2", - "endPointType": "INTERNAL" - } - ] + "jobId": "jobId-example" } ``` @@ -1992,55 +2605,27 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info --- -### 네트워크 정보 수정하기 - -```http -PUT /v3.0/db-instances/{dbInstanceId}/network-info -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 목록 보기 +### 스토리지 정보 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/db-users +GET /v3.0/db-instances/{dbInstanceId}/storage-info ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|-----------------------------------------------------------------------------------------------------------------------------| -| dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | -| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | -| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | -| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `UPDATING`: 수정 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbUsers.authenticationPlugin | Body | Enum | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| dbUsers.tlsOption | Body | Enum | TLS Option
- NONE
- SSL
- X509 | -| dbUsers.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbUsers.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageType | Body | Enum | 데이터 스토리지 타입 | +| storageSize | Body | Number | 데이터 스토리지 크기(GB) | +| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- DELETED: `삭제됨`
- PENDING_DELETION: `삭제 유예됨`
- DELETION_RESERVED: `삭제 예약됨 (스냅샷 정리 대기)`
- DETACHED: `해제됨`
- ATTACHED: `할당됨` |

예시

@@ -2052,19 +2637,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbUsers": [ - { - "dbUserId": "4b3d530b-fd02-4d59-a620-83d019a67bbb", - "dbUserName": "db-user", - "host": "%", - "authorityType": "DDL", - "dbUserStatus": "STABLE", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE", - "createdYmdt": "2023-03-17T14:02:29+09:00", - "updatedYmdt": "2023-03-17T14:02:31+09:00" - } - ] + "storageType": "ENUM_VALUE", + "storageSize": 1, + "storageStatus": "DELETED" } ``` @@ -2073,38 +2648,25 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users --- -### DB 사용자 생성하기 +### 스토리지 정보 수정하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/db-users +PUT /v3.0/db-instances/{dbInstanceId}/storage-info ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|-------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserName | Body | String | O | DB 사용자 계정 이름
- 최소 길이: `1`
- 최대 길이: `32` | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| host | Body | String | O | DB 사용자 계정의 호스트명
- 예시: `1.1.1.%` | -| authorityType | Body | Enum | O | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | - -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 설정할 수 있습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최댓값: `2048` |

예시

```json { - "dbUserName": "db-user", - "dbPassword": "password", - "host": "1.1.1.%", - "authorityType": "CRUD", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE" + "storageSize": 1 } ``` @@ -2113,99 +2675,50 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 수정하기 - -```http -PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|-------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | -| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| authorityType | Body | Enum | X | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | - -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 수정할 수 있습니다. -> `authenticationPlugin`의 값은 `dbPassword`와 동시에 수정을 해야 합니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

```json { - "authorityType": "DDL" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 삭제하기 - -```http -DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +## DB 인스턴스 그룹 -### DB 스키마 목록 보기 +### DB 인스턴스 그룹 목록 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/db-schemas +GET /v3.0/db-instance-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|------------------------------------------------------------------------------------------------------| -| dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | -| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | -| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbSchemas.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2217,12 +2730,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSchemas": [ + "dbInstanceGroups": [ { - "dbSchemaId": "7c9a94b8-86c1-435d-8af2-82a5e9d53fd4", - "dbSchemaName": "schema", - "dbSchemaStatus": "STABLE", - "createdYmdt": "2023-03-20T13:37:45+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2233,75 +2743,81 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas --- -### DB 스키마 생성하기 +### DB 인스턴스 그룹 상세 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/db-schemas +GET /v3.0/db-instance-groups/{dbInstanceGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaName | Body | String | O | DB 스키마 이름 | +이 API는 요청 본문을 요구하지 않습니다. -#### 응답 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +#### 응답 ---- +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | -### DB 스키마 삭제하기 +

예시 +

-```http -DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} ``` -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 로그 파일 목록 보기 +## DB 인스턴스 사양 + +### DB 인스턴스 사양 목록 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/log-files +GET /v3.0/db-flavors ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|-------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileTypes | Query | Array | X | 로그 파일 타입 종류 목록
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| logFiles | Body | Array | 로그 파일 목록 | -| logFiles.logFileName | Body | String | 로그 파일 이름 | -| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | -| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | -| logFiles.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -2313,12 +2829,9 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files "resultMessage": "SUCCESS", "isSuccessful": true }, - "logFiles": [ + "dbFlavors": [ { - "logFileName": "xtra_full.log-20230317", - "logFileType": "BACKUP", - "logFileSize": 4096, - "createdYmdt": "2023-03-17T14:02:29+09:00" + "vcpus": 1 } ] } @@ -2329,95 +2842,65 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files --- -### 로그 파일 내보내기 +## storages + +### 스토리지 목록 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/log-files/export +GET /v3.0/storages ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|--------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileNames | Body | Array | O | 로그 파일 이름 목록
- 최소 크기: `1` | -| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storages | Body | Array | 스토리지 목록 |

예시

```json { - "logFileNames": ["xtra_full.log-20230317"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "logs/backup" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storages": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +## 네트워크 -### 백업 목록 조회 +### 서브넷 목록 보기 ```http -GET /v3.0/backups +GET /v3.0/network/subnets ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|--------|----|----------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| backupType | Query | Enum | X | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동
- 기본값: 전체 | -| dbInstanceId | Query | UUID | X | 원본 DB 인스턴스의 식별자 | -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|-----------------------------------| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | UUID | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태 | -| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형 | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |
예시

@@ -2429,19 +2912,9 @@ GET /v3.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "backups": [ + "subnets": [ { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupSize": 4996786, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" + "availableIpCount": 1 } ] } @@ -2452,168 +2925,118 @@ GET /v3.0/backups --- -### 백업 내보내기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v3.0/backups/{backupId}/export +GET /v3.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storageTypes": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - -> [주의] -> 수동 백업의 경우 백업이 수행된 DB 인스턴스가 존재하지 않으면, 백업을 오브젝트 스토리지로 내보낼 수 없습니다. - --- -### 백업 복원하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v3.0/backups/{backupId}/restore +GET /v3.0/metric-statistics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Integer | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | - -
예시 -

- -```json - -{ - "dbInstanceName": "db-instance-restore", - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbPort": 10000, - "parameterGroupId": "132d383c-38e3-468a-a826-5e9a8fff15d0", - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 백업 삭제하기 +### Metric 목록 보기 ```http -DELETE /v3.0/backups/{backupId} +GET /v3.0/metrics ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "metrics": [ + { + "unit": "unit-example" + } + ] +} +``` + +

+
--- -## DB 보안 그룹 +## 백업 -### DB 보안 그룹 진행 상태 +### 백업 상태 -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | -### DB 보안 그룹 목록 보기 +### 백업 목록 조회 ```http -GET /v3.0/db-security-groups +GET /v3.0/backups ``` #### 요청 @@ -2622,15 +3045,20 @@ GET /v3.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-----------------------------------| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2642,14 +3070,10 @@ GET /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "totalCounts": 1, + "backups": [ { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2022-02-19T19:18:13+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2660,42 +3084,25 @@ GET /v3.0/db-security-groups --- -### DB 보안 그룹 상세 보기 +### 백업 삭제하기 ```http -GET /v3.0/db-security-groups/{dbSecurityGroupId} +DELETE /v3.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|----------|--------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다.
- `PORT`: 지정된 포트값으로 설정됩니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | 허용할 트래픽의 원격 소스 | -| rules.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| rules.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2707,30 +3114,7 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "rules": [ - { - "ruleId": "17c88ef6-95f1-4678-84f9-fee1b22e250d", - "description": "description", - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } - ], - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } + "jobId": "jobId-example" } ``` @@ -2739,50 +3123,33 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 생성하기 +### 백업 내보내기 ```http -POST /v3.0/db-security-groups +POST /v3.0/backups/{backupId}/export ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "rules": [ - { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0" - } - ] + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -2791,33 +3158,105 @@ POST /v3.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|------|---------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### DB 보안 그룹 수정하기 +### 백업 복원하기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId} +POST /v3.0/backups/{backupId}/restore ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|-----------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` |
예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } } ``` @@ -2826,7 +3265,9 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2837,33 +3278,37 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ```

- --- -### DB 보안 그룹 삭제하기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2874,7 +3319,12 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "userGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -2883,42 +3333,28 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 규칙 생성하기 +### 사용자 그룹 생성하기 ```http -POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v3.0/user-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT", - "minPort": 10000, - "maxPort": 10000 - }, - "cidr": "0.0.0.0/0" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -2927,178 +3363,74 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 보안 그룹 규칙 수정하기 - -```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleId | URL | UUID | O | DB 보안 그룹 규칙의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "DB_PORT" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "0.0.0.0/0" + "userGroupId": "userGroupId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 보안 그룹 규칙 삭제하기 - -```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|-------|----|---------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleIds | Query | Array | O | DB 보안 그룹 규칙의 식별자 목록 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 +### 사용자 그룹 삭제하기 ```http -GET /v3.0/parameter-groups +DELETE /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------|-------|------|----|----------| -| dbVersion | Query | Enum | X | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-------------------------------------------------------------------| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "parameterGroups": [ - { - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "createdYmdt": "2023-02-31T15:28:17+09:00", - "updatedYmdt": "2023-02-31T15:28:17+09:00" - } - ] -} -``` - -

-
- +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 상세 보기 +### 사용자 그룹 상세 보기 ```http -GET /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|--------------------------------------------------------------------------------------------------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | UUID | 파라미터 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- `CLIENT`: client
- `MYSQL`: mysql
- `MYSQLD`: mysqld | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- `VARIABLE`: 언제든 수정 가능
- `CONSTANT`: 수정 불가능
- `INIT_VARIABLE`: DB 인스턴스 생성 시에만 수정 가능 | -| parameters.applyType | Body | Enum | 적용 타입
- `SESSION`: 세션 적용
- `FILE`: 설정 파일 적용(재시작 필요)
- `BOTH`: 전체(재시작 필요) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3110,56 +3442,47 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "parameters": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "parameterId": "fa040b5e-f29f-46de-8f0d-bba4cb82887a", - "parameterFileGroup": "client", - "parameterName": "socket", - "fileParameterName": "socket", - "value": "/home/tcrds/db/mysql/tmp/mysql.sock", - "defaultValue": "/home/tcrds/db/mysql/tmp/mysql.sock", - "allowedValue": "", - "updateType": "CONSTANT", - "applyType": "BOTH" + "memberId": "memberId-example" } ], - "createdYmdt": "2023-03-13T11:02:28+09:00", - "updatedYmdt": "2023-03-13T11:02:28+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

- --- -### 파라미터 그룹 생성하기 +### 사용자 그룹 수정하기 ```http -POST /v3.0/parameter-groups +PUT /v3.0/user-groups/{userGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |
예시

```json { - "parameterGroupName": "parameter-group", - "dbVersion": "MYSQL_V8028" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -3168,67 +3491,86 @@ POST /v3.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 복사하기 +## 알림 그룹 + +### 알림 그룹 목록 보기 ```http -POST /v3.0/parameter-groups/{parameterGroupId}/copy +GET /v3.0/notification-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "parameterGroupName": "parameter-group-copy", - "description": "copy" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "notificationGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | - --- -### 파라미터 그룹 수정하기 +### 알림 그룹 생성하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId} +POST /v3.0/notification-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |
예시

```json { - "parameterGroupName": "parameter-group" + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], + "userGroupIds": [] } ``` @@ -3237,7 +3579,9 @@ PUT /v3.0/parameter-groups/{parameterGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3248,7 +3592,8 @@ PUT /v3.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3257,75 +3602,57 @@ PUT /v3.0/parameter-groups/{parameterGroupId} --- -### 파라미터 수정하기 +### 알림 그룹 삭제하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/parameters +DELETE /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------|------|--------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | - -

예시 -

- -```json -{ - "modifiedParameters": [ - { - "parameterId": "3abac558-7274-44e1-9f4a-f100f53f67ba", - "value": "0" - } - ] -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } -} -``` - -

-
- --- -### 파라미터 그룹 재설정하기 +### 알림 그룹 상세 보기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/reset +GET /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3336,7 +3663,24 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/reset "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ + { + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3345,48 +3689,66 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/reset --- -### 파라미터 그룹 삭제하기 +### 알림 그룹 수정하기 ```http -DELETE /v3.0/parameter-groups/{parameterGroupId} +PUT /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 사용자 그룹 +## 이벤트 -### 사용자 그룹 목록 보기 +### 이벤트 카테고리 + +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. + +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | + +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v3.0/user-groups +GET /v3.0/event-codes ``` #### 요청 @@ -3395,13 +3757,11 @@ GET /v3.0/user-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|-----------------------------------| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |
예시

@@ -3413,12 +3773,9 @@ GET /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "eventCodes": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "eventCategoryType": "ALL" } ] } @@ -3429,31 +3786,30 @@ GET /v3.0/user-groups --- -### 사용자 그룹 상세 보기 +### 이벤트 목록 조회 ```http -GET /v3.0/user-groups/{userGroupId} +GET /v3.0/events ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|----------|-----------------------------------------------------------------------------------------------------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
`ENTIRE`: 프로젝트 멤버 전체를 포함하는 사용자 그룹
`INDIVIDUAL_MEMBER`: 특정 프로젝트 멤버를 포함하는 사용자 그룹 | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

@@ -3465,16 +3821,12 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "userGroupTypeCode": "INDIVIDUAL_MEMBER", - "members": [ + "totalCounts": 1, + "events": [ { - "memberId": "1321e759-2ef3-4b85-9921-b13e918b24b5" + "eventYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + ] } ``` @@ -3483,75 +3835,99 @@ GET /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 생성하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v3.0/user-groups +GET /v3.0/event-subscriptions ``` -#### 요청 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|-------------------------------------------------------------| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록
`selectAllYN`이 true인 경우 해당 필드 값은 무시됨 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |

예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } ] } ``` -```json -{ - "userGroupName": "dev-team", - "selectAllYN":true -} -``` -

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------------|------|------|-------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | - --- -### 사용자 그룹 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v3.0/user-groups/{userGroupId} +POST /v3.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|----------------------------------------------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | -| userGroupName | Body | String | X | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5", - "f9064b09-2b15-442e-a4b0-3a5a2754555e" - ] + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ``` @@ -3560,7 +3936,9 @@ PUT /v3.0/user-groups/{userGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -3571,7 +3949,8 @@ PUT /v3.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -3580,64 +3959,121 @@ PUT /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 삭제하기 +### 이벤트 구독 삭제하기 ```http -DELETE /v3.0/user-groups/{userGroupId} +DELETE /v3.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v3.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 알림 그룹 +## 작업 정보 -### 알림 그룹 목록 보기 +### 작업 상태 + +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 ```http -GET /v3.0/notification-groups +GET /v3.0/jobs/{jobId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------------|------|----------|-----------------------------------| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3649,17 +4085,15 @@ GET /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ { - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "resourceId": "resourceId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3668,37 +4102,30 @@ GET /v3.0/notification-groups --- -### 알림 그룹 상세 보기 +## 파라미터 그룹 + +### 파라미터 그룹 목록 보기 ```http -GET /v3.0/notification-groups/{notificationGroupId} +GET /v3.0/parameter-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------------|------|----------|-----------------------------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3710,25 +4137,11 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "dbInstances": [ - { - "dbInstanceId": "ed5cb985-526f-4c54-9ae0-40288593de65", - "dbInstanceName": "database" - } - ], - "userGroups": [ + "parameterGroups": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + ] } ``` @@ -3737,37 +4150,28 @@ GET /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v3.0/notification-groups +POST /v3.0/parameter-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------------| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "notificationGroupName": "dev-team-noti", - "notifyEmail": false, - "isEnable": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65" - ], - "userGroupIds": [ - "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0" - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -3776,49 +4180,84 @@ POST /v3.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|------|------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "parameterGroupId": "parameterGroupId-example" +} +``` + +

+
--- -### 알림 그룹 수정하기 +### 파라미터 그룹 삭제하기 ```http -PUT /v3.0/notification-groups/{notificationGroupId} +DELETE /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부 | -| notifySms | Body | Boolean | X | SMS 알림 여부 | -| isEnabled | Body | Boolean | X | 활성화 여부 | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +이 API는 요청 본문을 요구하지 않습니다. -
예시 -

+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -```json -{ - "notifyEmail": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65", - "d51b7da0-682f-47ff-b588-b739f6adc740" - ] -} +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 파라미터 그룹 상세 보기 + +```http +GET /v3.0/parameter-groups/{parameterGroupId} ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3829,7 +4268,19 @@ PUT /v3.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ + { + "applyType": "BOTH" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3838,61 +4289,71 @@ PUT /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 수정하기 ```http -DELETE /v3.0/notification-groups/{notificationGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 모니터링 +이 API는 응답 본문을 반환하지 않습니다. -### Metric 목록 보기 +--- + +### 파라미터 그룹 복사하기 ```http -GET /v3.0/metrics +POST /v3.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|--------|-----------| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | Enum | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -3904,12 +4365,7 @@ GET /v3.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "measureName": "CPU_USAGE", - "unit": "%" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3918,56 +4374,29 @@ GET /v3.0/metrics --- -### 통계 정보 조회 +### 파라미터 수정하기 ```http -GET /v3.0/metric-statistics +PUT /v3.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|----------|----|-----------------------------------| -| dbInstanceId | Query | UUID | O | DB 인스턴스의 식별자 | -| measureNames | Query | Array | O | 조회 지표 목록
- 최소 크기: `1` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| interval | Query | Number | X | 조회 간격 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|-----------|----------| -| metricStatistics | Body | Array | 통계 정보 목록 | -| metricStatistics.measureName | Body | Enum | 측정 항목 유형 | -| metricStatistics.unit | Body | String | 측정값 단위 | -| metricStatistics.values | Body | Array | 측정값 목록 | -| metricStatistics.values.timestamp | Body | Timestamp | 측정 시간 | -| metricStatistics.values.value | Body | Object | 측정값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "metricStatistics": [ + "modifiedParameters": [ { - "measureName": "MYSQL_STATUS", - "unit": "", - "values": [ - [ - 1679298540, - "1" - ], - [ - 1679298600, - "1" - ], - [ - 1679298660, - "1" - ] - ] + "value": "value-example" } ] } @@ -3976,58 +4405,53 @@ GET /v3.0/metric-statistics

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 +### 파라미터 그룹 재설정하기 -### 이벤트 카테고리 +```http +PUT /v3.0/parameter-groups/{parameterGroupId}/reset +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 이벤트 목록 조회 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 프로젝트 정보 + +### 프로젝트 멤버 목록 보기 ```http -GET /v3.0/events +GET /v3.0/project/members ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| eventCategoryType | Query | Enum | O | 조회할 이벤트 카테고리 유형
- `ALL`: 전체
- `INSTANCE`: DB 인스턴스
- `BACKUP`: 백업
- `DB_SECURITY_GROUP`: DB 보안 그룹
- `TENANT`: 테넌트 | -| sourceId | Query | String | X | 이벤트가 발생한 대상 리소스의 식별자 | -| keyword | Query | String | X | 이벤트 메시지에 포함된 문자열 검색어 | -| ascendingOrder | Query | Enum | X | 이벤트 메시지 정렬 순서
- `ASC`: 오름차순
- `DESC`: 내림차순
- 기본값: `DESC` | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|---------------------------------------| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메시지 목록 | -| events.messages.langCode | Body | String | 언어 코드 | -| events.messages.message | Body | String | 이벤트 메시지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -4039,32 +4463,9 @@ GET /v3.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 28, - "events": [ + "members": [ { - "eventCategoryType": "INSTANCE", - "eventCode": "INSTC_02_01", - "sourceId": "76f00947-356e-4a20-8922-428368cc45ed", - "sourceName": "db-instance", - "messages": [ - { - "langCode": "EN", - "message": "DB instance started" - }, - { - "langCode": "JA", - "message": "DBインスタンスの起動" - }, - { - "langCode": "KO", - "message": "DB 인스턴스 시작" - }, - { - "langCode": "ZH", - "message": "DB instance started" - } - ], - "eventYmdt": "2023-03-20T16:31:59+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -4075,10 +4476,10 @@ GET /v3.0/events --- -### 구독 가능한 이벤트 코드 목록 보기 +### 리전 목록 보기 ```http -GET /v3.0/event-codes +GET /v3.0/project/regions ``` #### 요청 @@ -4087,11 +4488,11 @@ GET /v3.0/event-codes #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|-------|-------------| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

@@ -4103,10 +4504,9 @@ GET /v3.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "regions": [ { - "eventCode": "INSTC_05_01", - "eventCategoryType": "INSTANCE" + "isEnabled": false } ] } @@ -4116,3 +4516,4 @@ GET /v3.0/event-codes

--- + diff --git a/ko/api-guide-v3.0-ngovc.md b/ko/api-guide-v3.0-ngovc.md index d15a7d5f..e1f93620 100644 --- a/ko/api-guide-v3.0-ngovc.md +++ b/ko/api-guide-v3.0-ngovc.md @@ -1,35 +1,32 @@ ## Database > RDS for MySQL > API 가이드 -| 리전 | 엔드포인트 | -|-----------|-----------------------------------------------| -| 한국(판교) 리전 | https://kr4-rds-mysql-api.ngovc.com | +## RDS for MySQL API 공통 정보 -## 인증 및 권한 +### 인증 및 권한 -API를 사용하려면 인증에 필요한 `User Access Key ID`와 `Secret Access Key`가 필요합니다. 콘솔 우측 상단의 계정에 마우스 포인터를 올리면 표시되는 드롭다운 메뉴에서 API 보안 설정을 선택해 생성할 수 있습니다. -생성된 Key는 Appkey와 함께 요청 Header에 포함해야 합니다. +RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. +발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------|--------|--------|----|-------------------------------------------------------------| -| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-TC-AUTHENTICATION-ID | Header | String | O | API 보안 설정 메뉴의 User Access Key ID | -| X-TC-AUTHENTICATION-SECRET | Header | String | O | API 보안 설정 메뉴의 Secret Access Key | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | +| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | -또한 프로젝트 멤버 역할에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER`로 구분하여 권한을 부여할 수 있습니다. +또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. -* `RDS for MySQL ADMIN` 권한은 모든 기능을 사용 가능합니다. -* `RDS for MySQL VIEWER` 권한은 정보를 조회하는 기능만 사용 가능합니다. +* `RDS for MySQL ADMIN` 역할은 API 실행에 필요한 모든 권한이 부여됩니다. +* `RDS for MySQL VIEWER` 역할은 정보를 조회하는 권한만 부여됩니다. * DB 인스턴스를 생성, 수정, 삭제하거나, DB 인스턴스를 대상으로 하는 어떠한 기능도 사용할 수 없습니다. - * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용 가능합니다. + * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용할 수 있습니다. API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같은 오류가 발생합니다. -| resultCode | resultMessage | 설명 | -|------------|---------------|-------------| -| 80401 | Unauthorized | 인증에 실패했습니다. | -| 80403 | Forbidden | 권한이 없습니다. | +| resultCode | resultMessage | 설명 | +|------------|---------------|-----| +| 80401 | Unauthorized | 인증에 실패했습니다. | +| 80403 | Forbidden | 권한이 없습니다. | -## 응답 공통 정보 +### 응답 공통 정보 모든 API 요청에 '200 OK'로 응답합니다. 자세한 응답 결과는 응답 본문의 헤더를 참고합니다. @@ -45,47 +42,66 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 ``` #### 필드 -| 이름 | 형식 | 설명 | -|---------------|---------|-----------------------------------------| -| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | -| resultMessage | String | 결과 메시지 | -| isSuccessful | Boolean | 성공 여부 | - - -## DB 엔진 유형 - -| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 정보 | -|--------------|----------|-----------------|--------| -| MYSQL\_V5633 | X | X | NATIVE | -| MYSQL\_V5715 | O | O | NATIVE | -| MYSQL\_V5719 | O | O | NATIVE | -| MYSQL\_V5726 | O | O | NATIVE | -| MYSQL\_V5731 | X | X | NATIVE | -| MYSQL\_V5733 | O | X | NATIVE, SHA256 | -| MYSQL\_V5737 | O | O | NATIVE, SHA256 | -| MYSQL\_V8018 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8023 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8028 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8032 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8033 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8034 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8405 | O | O | CACHING_SHA2 | +| 이름 | 형식 | 설명 | +|-----|-----|-----| +| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | +| resultMessage | String | 결과 메시지 | +| isSuccessful | Boolean | 성공 여부 | + +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(대구) 리전 | https://ngovc-kr4-rds-proxy.cloud.toastoven.net | + +### DB 엔진 유형 + +| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | +|------------|----------|------------------|------------| +| MYSQL_V5633 | X | X | NATIVE | +| MYSQL_V5715 | O | O | NATIVE | +| MYSQL_V5719 | O | O | NATIVE | +| MYSQL_V5726 | O | O | NATIVE | +| MYSQL_V5731 | X | X | NATIVE | +| MYSQL_V5733 | O | X | NATIVE, SHA256 | +| MYSQL_V5737 | O | O | NATIVE, SHA256 | +| MYSQL_V8018 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8023 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8028 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8032 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8033 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8034 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8405 | O | O | CACHING_SHA2 | +| MYSQL_V8406 | O | O | CACHING_SHA2 | +| MYSQL_V8407 | O | O | CACHING_SHA2 | +| MYSQL_V8408 | O | O | CACHING_SHA2 | * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## 프로젝트 정보 +## DB 보안 그룹 -### 리전 목록 보기 +### DB 보안 그룹 진행 상태 + +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | + +### DB 보안 그룹 목록 보기 ```http -GET /v3.0/project/regions +GET /v3.0/db-security-groups ``` #### 요청 @@ -94,11 +110,15 @@ GET /v3.0/project/regions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------|------|---------|----------------------------------------------------------------------------| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -110,63 +130,51 @@ GET /v3.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ - { - "regionCode": "KR1", - "isEnabled": true - }, - { - "regionCode": "KR2", - "isEnabled": true - }, + "dbSecurityGroups": [ { - "regionCode": "JP1", - "isEnabled": true + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } ``` +

--- -### 프로젝트 멤버 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v3.0/project/members +POST /v3.0/db-security-groups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|--------|-----------------| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ { - "memberId": "1b1d3627-507a-49ea-8cb7-c86dfa9caa58", - "memberName": "홍길동", - "emailAddress": "gildong.hong@nhn.com", - "phoneNumber": "+821012345678" + "description": "description-example" } ] } @@ -175,29 +183,11 @@ GET /v3.0/project/members

---- - -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 - -```http -GET /v3.0/db-flavors -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -209,14 +199,7 @@ GET /v3.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbFlavorName": "m2.c1m2", - "ram": 2048, - "vcpus": 1 - } - ] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -225,76 +208,63 @@ GET /v3.0/db-flavors --- -## 네트워크 - -### 서브넷 목록 보기 +### DB 보안 그룹 삭제하기 ```http -GET /v3.0/network/subnets +DELETE /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|---------|------------------| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | UUID | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | - -

예시 -

+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "subnets": [ - { - "subnetId": "1b2a9b23-0725-4b92-8c78-35db66b8ad9f", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/24", - "usingGateway": true, - "availableIpCount": 240 - } - ] -} -``` +#### 응답 -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -## DB 엔진 - -### DB 엔진 목록 보기 +### DB 보안 그룹 상세 보기 ```http -GET /v3.0/db-versions +GET /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|---------|-----------------------| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroup | Body | Object | DB 보안 그룹 | +| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | +| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | +| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | +| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | +| dbSecurityGroup.rules.cidr | Body | String | CIDR | +| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | +| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -306,13 +276,19 @@ GET /v3.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ - { - "dbVersion": "MYSQL_V8028", - "dbVersionName": "MySQL 8.0.28", - "restorableFromObs": true - } - ] + "dbSecurityGroup": { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -321,61 +297,59 @@ GET /v3.0/db-versions --- -## 데이터 스토리지 - -### 데이터 스토리지 타입 목록 보기 +### DB 보안 그룹 수정하기 ```http -GET /v3.0/storage-types +PUT /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|-------|----------------| -| storageTypes | Body | Array | 데이터 스토리지 타입 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "storageTypes": [ - "General SSD", - "General HDD" - ] + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 데이터 스토리지 목록 보기 +### DB 보안 그룹 규칙 삭제하기 ```http -GET /v3.0/storages +DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------|------|-------|-------------| -| storages | Body | Array | 데이터 스토리지 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -387,10 +361,7 @@ GET /v3.0/storages "resultMessage": "SUCCESS", "isSuccessful": true }, - "storages": [ - "General SSD", - "General HDD" - ] + "jobId": "jobId-example" } ``` @@ -399,50 +370,51 @@ GET /v3.0/storages --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### DB 보안 그룹 규칙 생성하기 ```http -GET /v3.0/jobs/{jobId} +POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | + +

예시 +

+ +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------|-----|------|----|---------| -| jobId | URL | UUID | O | 작업의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------|------|----------|-----------------------------------| -| jobId | Body | UUID | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태 | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | Enum | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | UUID | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -454,16 +426,7 @@ GET /v3.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "0ddb042c-5af6-43fb-a914-f4dd0540eb7c", - "jobStatus": "RUNNING", - "resourceRelations": [ - { - "resourceType": "DB_INSTANCE", - "resourceId": "56b39dcf-65eb-47ec-9d4f-09f160ba2266" - } - ], - "createdYmdt": "2023-02-22T20:47:12+09:00", - "updatedYmdt": "2023-02-22T20:49:46+09:00" + "jobId": "jobId-example" } ``` @@ -472,27 +435,52 @@ GET /v3.0/jobs/{jobId} --- -## DB 인스턴스 그룹 - -### DB 인스턴스 그룹 목록 보기 +### DB 보안 그룹 규칙 수정하기 ```http -GET /v3.0/db-instance-groups +PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | + +

예시 +

+ +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------|------|----------|--------------------------------------------------------------------------| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -504,14 +492,7 @@ GET /v3.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ - { - "dbInstanceGroupId": "05de0746-89fd-49c8-94f9-9c5b1df97009", - "replicationType": "STANDALONE", - "createdYmdt": "2023-02-13T17:35:20+09:00", - "updatedYmdt": "2023-02-13T17:35:20+09:00" - } - ] + "jobId": "jobId-example" } ``` @@ -520,32 +501,26 @@ GET /v3.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v3.0/db-instance-groups/{dbInstanceGroupId} +GET /v3.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|-----------------| -| dbInstanceGroupId | URL | UUID | O | DB 인스턴스 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |

예시

@@ -557,17 +532,11 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "36617a8e-0df8-4b16-b6ea-6306019e95da", - "replicationType": "STANDALONE", - "dbInstances": [ + "dbVersions": [ { - "dbInstanceId": "6d2db0ef-fe9b-4ed4-97b1-d97fcb4cf1b8", - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE" + "restorableFromObs": false } - ], - "createdYmdt": "2023-03-03T17:38:14+09:00", - "updatedYmdt": "2023-03-03T17:38:14+09:00" + ] } ``` @@ -600,8 +569,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | `BACKING_UP` | 백업 중 | | `CANCELING` | 취소 중 | | `CREATING` | 생성 중 | -| `CREATING_SCHEMA` | DB 스키마 생성 중 | -| `CREATING_USER` | 사용자 생성 중 | +| `CREATING_SCHEMA` | DB 스키마 생성 중 | +| `CREATING_USER` | 사용자 생성 중 | | `DELETING` | 삭제 중 | | `DELETING_SCHEMA` | DB 스키마 삭제 중 | | `DELETING_USER` | 사용자 삭제 중 | @@ -620,8 +589,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | `STARTING` | 시작 중 | | `STOPPING` | 정지 중 | | `SYNCING_SCHEMA` | DB 스키마 동기화 중 | -| `SYNCING_USER` | 사용자 동기화 중 | -| `UPDATING_USER` | 사용자 수정 중 | +| `SYNCING_USER` | 사용자 동기화 중 | +| `UPDATING_USER` | 사용자 수정 중 | ### DB 인스턴스 목록 보기 @@ -635,20 +604,20 @@ GET /v3.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | -| dbInstances.dbPort | Body | Number | DB 포트 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태 | -| dbInstances.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstances.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstances | Body | Array | DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | +| dbInstances.dbPort | Body | Number | DB 포트 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbInstances.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstances.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -662,17 +631,7 @@ GET /v3.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "createdYmdt": "2023-01-23T12:03:13+09:00", - "updatedYmdt": "2023-02-02T17:20:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -683,44 +642,104 @@ GET /v3.0/db-instances --- -### DB 인스턴스 상세 보기 +### DB 인스턴스 생성하기 ```http -GET /v3.0/db-instances/{dbInstanceId} +POST /v3.0/db-instances ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| authenticationPlugin | Body | Enum | X | 인증 Plugin
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | TLS Option
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE", + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| dbPort | Body | Number | DB 포트 | -| dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| progressStatus | Body | Enum | DB 인스턴스의 현재 작업 진행 상태 | -| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | -| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | -| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | -| supportAuthenticationPlugin | Body | Boolean | 인증 플러그인 지원 여부 | -| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | -| needMigration | Body | Boolean | 마이그레이션 필요 여부 | -| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -732,26 +751,7 @@ GET /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "dbFlavorId": "e9ed4ef6-78d7-46fa-ace9-32481e97f3b7", - "parameterGroupId": "b03e8b13-de27-4d04-a488-ff5689589372", - "dbSecurityGroupIds": ["01908c35-d2c9-4852-baf0-17f06ec42c03"], - "notificationGroupIds": ["83a62a33-ddbf-4a04-8653-e54463d5b1ac"], - "useDeletionProtection": false, - "supportAuthenticationPlugin": true, - "needToApplyParameterGroup": false, - "needMigration": false, - "supportDbVersionUpgrade": true, - "createdYmdt": "2022-11-23T12:03:13+09:00", - "updatedYmdt": "2022-12-02T17:20:17+09:00" + "jobId": "jobId-example" } ``` @@ -760,131 +760,769 @@ GET /v3.0/db-instances/{dbInstanceId} --- -### DB 인스턴스 생성하기 +### 오브젝트 스토리지를 이용한 DB 인스턴스 복원 ```http -POST /v3.0/db-instances +POST /v3.0/db-instances/restore-from-obs ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|---------------------------------------------------------------------| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbUserName | Body | String | O | DB 사용자 계정명 | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| imageId | Body | UUID | X | 이미지의 식별자 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | +| restore.username | Body | String | O | NHN Cloud 계정 혹은 IAM 멤버 ID | +| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | +| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | +| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "dbVersion": "ENUM_VALUE", + "useHighAvailability": false, + "imageId": "550e8400-e29b-41d4-a716-446655440000", + "pingInterval": 3, "storage": { - "storageType": "General SSD", + "storageType": "ENUM_VALUE", "storageSize": 20 }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, "backup": { - "backupPeriod": 1, + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": true, "backupSchedules": [ { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR" + "backupWndDuration": "HALF_AN_HOUR" } ] - } -} -``` + }, + "restore": { + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" + }, + "useDefaultNotification": false, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 인스턴스 삭제하기 + +```http +DELETE /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 상세 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| dbPort | Body | Number | DB 포트 | +| dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | +| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | +| supportAuthenticationPlugin | Body | Boolean | 인증 plugin 지원 여부 | +| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | +| needMigration | Body | Boolean | 마이그레이션 필요 여부 | +| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "dbFlavorId": "dbFlavorId-example", + "parameterGroupId": "parameterGroupId-example", + "dbSecurityGroupIds": [], + "notificationGroupIds": [], + "useDeletionProtection": false, + "supportAuthenticationPlugin": false, + "needToApplyParameterGroup": false, + "needMigration": false, + "supportDbVersionUpgrade": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ +--- + +### DB 인스턴스 수정하기 + +```http +PUT /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbVersion | Body | Enum | X | DB 엔진 버전 코드 | +| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
- 기본값: `false` | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbPort": 1, + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "useDummy": false, + "dbSecurityGroupIds": [], + "executeBackup": false, + "useOnlineFailover": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 백업하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/backup +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "backupName": "backupName" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 백업 정보 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backupPeriod | Body | Number | 백업 보관 기간(일) | +| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | +| backupRetryCount | Body | Number | 백업 재시도 횟수 | +| replicationRegion | Body | Enum | 백업 복제 리전
- KR4: `한국(대구)` | +| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration
- HALF_AN_HOUR
- ONE_HOUR
- ONE_HOUR_AND_HALF
- TWO_HOURS
- TWO_HOURS_AND_HALF
- THREE_HOURS | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "backupPeriod": 1, + "ftwrlWaitTimeout": 1, + "backupRetryCount": 1, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +--- + +### 백업 정보 수정하기 + +```http +PUT /v3.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +
예시 +

+ +```json +{ + "backupPeriod": 0, + "ftwrlWaitTimeout": 0, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 오브젝트 스토리지로 백업 + +```http +POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | + +
예시 +

+ +```json +{ + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 테스트 용 DB 이미지 메타 변경 + +```http +PUT /v3.0/db-instances/{dbInstanceId}/change-image-meta +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 스키마 목록 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSchemas | Body | Array | DB 스키마 목록 | +| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | +| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | +| dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbSchemas": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### DB 스키마 생성하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbSchemaName | Body | String | O | DB 스키마 이름
- 최대 길이: `64`
- 영문 시작, 영문/숫자/_ 허용, 1~64자, MySQL 예약어 불가 | + +
예시 +

+ +```json +{ + "dbSchemaName": "dbSchemaName-example" +} +```

#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 스키마 삭제하기 + +```http +DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbSchemaId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 사용자 목록 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/db-users +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbUsers | Body | Array | DB 사용자 목록 | +| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | +| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | +| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- STABLE
- CREATING
- UPDATING
- SYNCING
- DELETING
- DELETED | +| dbUsers.createdYmdt | Body | DateTime | 생성 일시 | +| dbUsers.updatedYmdt | Body | DateTime | 수정 일시 | +| dbUsers.authenticationPlugin | Body | Enum | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| dbUsers.tlsOption | Body | Enum | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbUsers": [ + { + "tlsOption": "NONE" + } + ] +} +``` + +

+
--- -### DB 인스턴스 수정하기 +### DB 사용자 생성하기 ```http -PUT /v3.0/db-instances/{dbInstanceId} +POST /v3.0/db-instances/{dbInstanceId}/db-users ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|--------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbPort | Body | Number | X | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbVersion | Body | Enum | X | DB 엔진 유형 | -| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
기본값: `false` | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| host | Body | String | O | DB 사용자 계정의 호스트명
- 최대 길이: `45` | +| authorityType | Body | Enum | O | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |
예시

```json { - "dbInstanceName": "db-instance2", - "description": "description2", - "dbPort": 10001, - "dbSecurityGroupIds": [], - "executeBackup": true + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "host": "host-example", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" } ``` @@ -893,70 +1531,106 @@ PUT /v3.0/db-instances/{dbInstanceId} #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### DB 인스턴스 삭제하기 +### DB 사용자 삭제하기 ```http -DELETE /v3.0/db-instances/{dbInstanceId} +DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | ---- - -### DB 인스턴스 재시작하기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/restart +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} ``` -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +

+
-#### 응답 +--- -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +### DB 사용자 수정하기 ---- -### DB 인스턴스 강제 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/force-restart +PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserId | URL | UUID | O | | +| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| authorityType | Body | Enum | X | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "dbPassword": "dbPassword", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` +

+
#### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -967,282 +1641,228 @@ POST /v3.0/db-instances/{dbInstanceId}/force-restart "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ```

- --- -### DB 인스턴스 시작하기 +### DB 인스턴스 삭제 보호 설정 변경 ```http -POST /v3.0/db-instances/{dbInstanceId}/start +PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | + +
예시 +

+ +```json +{ + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 정지하기 +### DB 인스턴스 강제 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/stop +POST /v3.0/db-instances/{dbInstanceId}/force-restart ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 백업하기 +### 고가용성 수정하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/backup +PUT /v3.0/db-instances/{dbInstanceId}/high-availability ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|-----------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupName | Body | String | O | 백업을 식별할 수 있는 이름 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -### DB 인스턴스 백업 후 내보내기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage +```json +{ + "useHighAvailability": false, + "pingInterval": 1 +} ``` -#### 요청 +

+
+ +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 복제하기 +### 고가용성 일시 중지하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/replicate +POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록
- 기본값: 원본 DB 인스턴스 값 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: 원본 DB 인스턴스 값 | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄)
- 기본값: 원본 DB 인스턴스 값 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00`
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간
- 기본값: 원본 DB 인스턴스 값 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance-replicate", - "description": "description", - "dbPort": 11000, - "network": { - "availabilityZone": "kr-pub-a" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "storage": { - "stroageSize": 100 - } + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 승격하기 +### 고가용성 복구하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/promote +POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### 복원 정보 조회 +### 고가용성 다시 시작하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/restoration-info +POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | -| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | -| restorableBackups | Body | Array | 복원 가능한 백업 목록 | -| restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | -| restorableBackups.backup.backupName | Body | String | 백업 이름 | -| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | -| restorableBackups.backup.backupType | Body | Enum | 백업 유형
  • `AUTO`: 자동
  • `MANUAL`: 수동
| -| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
  • `BACKING_UP`: 백업 중인 경우
  • `COMPLETED`: 백업이 완료된 경우
  • `DELETING`: 백업이 삭제 중인 경우
  • `DELETED`: 백업이 삭제된 경우
  • `ERROR`: 오류가 발생한 경우
| -| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| restorableBackups.backup.dbVersion | Body | String | DB 엔진 유형 | -| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | -| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | -| restorableBackups.backup.binLogPosition | Body | Number | 바이너리 로그 파일 위치 | -| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | -| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | -| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "oldestRestorableYmdt": "2023-07-09T16:33:33+09:00", - "latestRestorableYmdt": "2023-07-10T15:44:44+09:00", - "restorableBackups": [ - { - "backup": { - "backupId": "145d889a-fe08-474f-8f58-bde576ff96a9", - "backupName": "example-backup-name", - "backupStatus": "COMPLETED", - "dbInstanceId": "dba1be25-9429-4589-9716-7fb6daad7cb9", - "dbInstanceName": "original-db-instance-name", - "dbVersion": "MYSQL_V8028", - "backupType": "MANUAL", - "backupSize": 8299904, - "useBackupLock": true, - "failoverCount": 0, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 367916037, - "createdYmdt": "2023-07-10T15:44:44+09:00", - "updatedYmdt": "2023-07-10T15:46:07+09:00" - }, - "restorableBinLogs": [ - "mysql-bin.000001" - ] - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ``` @@ -1251,39 +1871,25 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info --- -### 복원될 마지막 쿼리 조회 +### 고가용성 분리하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query +POST /v3.0/db-instances/{dbInstanceId}/high-availability/split ``` -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|------|----|-----------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restoreType | Query | Enum | O | 복원 타입 종류

  • `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
  • `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
| - -#### restoreType이 `TIMESTAMP`인 경우 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-------|----------|----|-------------------------------------------| -| restoreYmdt | Query | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +#### 요청 -#### restoreType이 `BINLOG`인 경우 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------|-------|--------|----|--------------------| -| backupId | Query | UUID | O | 복원에 사용할 백업의 식별자 | -| binLogFileName | Query | String | O | 복원에 사용할 바이너리 로그 이름 | -| binLogPosition | Query | Number | O | 복원에 사용할 바이너리 로그 위치 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|----------|--------------------------------------| -| executedYmdt | Body | DateTime | 쿼리 수행 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| lastQuery | Body | String | 마지막 수행 쿼리 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1295,8 +1901,7 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query "resultMessage": "SUCCESS", "isSuccessful": true }, - "executedYmdt": "2023-03-17T14:02:29+09:00", - "lastQuery": "INSERT INTO `test`.`test`SET @1='0123'" + "jobId": "jobId-example" } ``` @@ -1305,303 +1910,189 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query --- -### 복원 +### 로그 파일 목록 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/restore +GET /v3.0/db-instances/{dbInstanceId}/log-files ``` -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restore | Body | Object | O | 복원 정보 객체 | -| restore.restoreType | Body | Enum | O | 복원 타입 종류

  • `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
  • `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
  • `BACKUP`: 기존에 생성한 백업을 이용한 스냅숏 복원 타입
| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
  • 최솟값: `3306`
  • 최댓값: `43306`
| -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
  • 기본값: `false`
| -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
  • 기본값: `3`
  • 최솟값: `1`
  • 최댓값: `600`
| -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
  • 기본값: `false`
| -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
  • 기본값: `false`
| -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
  • 예시: `kr-pub-a`
| -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
  • 최솟값: `20`
  • 최댓값: `2048`
| -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
  • 최솟값: `0`
  • 최댓값: `730`
| -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
  • 기본값: `1800`
  • 최솟값: `0`
  • 최댓값: `21600`
| -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
  • 기본값: `0`
  • 최솟값: `0`
  • 최댓값: `10`
| -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
  • `KR1`: 한국(판교)
  • `KR2`: 한국(평촌)
  • `JP1`: 일본(도쿄)
| -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
  • 기본값: `true`
| -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
  • 예시: `00:00:00`
| -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
  • `HALF_AN_HOUR`: 30분
  • `ONE_HOUR`: 1시간
  • `ONE_HOUR_AND_HALF`: 1시간 30분
  • `TWO_HOURS`: 2시간
  • `TWO_HOURS_AND_HALF`: 2시간 30분
  • `THREE_HOURS`: 3시간
| -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | +이 API는 요청 본문을 요구하지 않습니다. -#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|----------|----|------------------------------------------------------------------------------------------------| -| restore.restoreYmdt | Body | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD)
복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능하다. | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| logFiles | Body | Array | 로그 파일 목록 | +| logFiles.logFileName | Body | String | 로그 파일 이름 | +| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- ERROR
- BINLOG
- GENERAL
- SLOW_QUERY
- AUDIT
- BACKUP | +| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | +| logFiles.createdYmdt | Body | DateTime | 생성 일시 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "TIMESTAMP", - "restoreYmdt": "2023-07-10T15:44:44+09:00" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "logFiles": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) +--- + +### 로그 파일 내보내기 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------------|------|--------|----|--------------------| -| restore.backupId | Body | UUID | O | 복원에 사용할 백업의 식별자 | -| restore.binLog | Body | Object | O | 바이너리 로그 정보 객체 | -| restore.binLog.binLogFileName | Body | String | O | 복원에 사용할 바이너리 로그 이름 | -| restore.binLog.binLogPosition | Body | Number | O | 복원에 사용할 바이너리 로그 위치 | +```http +POST /v3.0/db-instances/{dbInstanceId}/log-files/export +``` -* 바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. +#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| logFileNames | Body | Array | O | 로그 파일 이름 목록 | +| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BINLOG", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36", - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 1234567 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "logFileNames": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

-#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|------|------------------------------|-----------------| -| restore.backupId | Body | UUID | O(restoreType이 `BACKUP`인 경우) | 복원에 사용할 백업의 식별자 | - +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BACKUP", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

+--- + +### 네트워크 정보 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/network-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | +| subnet | Body | Object | 서브넷 객체 | +| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnet.subnetCidr | Body | String | 서브넷의 CIDR | +| endPoints | Body | Array | 접속 정보 목록 | +| endPoints.domain | Body | String | 도메인 | +| endPoints.ipAddress | Body | String | IP 주소 | +| endPoints.endPointType | Body | String | 접속 정보 타입 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "availabilityZone": "availabilityZone-example", + "subnet": { + "subnetId": "subnetId-example", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example" + }, + "endPoints": [ + { + "endPointType": "endPointType-example" + } + ] +} +``` +

+
--- -### 오브젝트 스토리지로부터 복원 +### 네트워크 정보 수정하기 ```http -POST /v3.0/db-instances/restore-from-obs +PUT /v3.0/db-instances/{dbInstanceId}/network-info ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|----------------------------------------------------------------------------------------| -| restore | Body | Object | O | 복원 정보 객체 | -| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | -| restore.username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | -| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | -| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
  • 최솟값: `3306`
  • 최댓값: `43306`
| -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
  • 기본값: `false`
| -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
  • 기본값: `3`
  • 최솟값: `1`
  • 최댓값: `600`
| -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
  • 기본값: `false`
| -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
  • 기본값: `false`
| -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
  • 예시: `kr-pub-a`
| -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
  • 최솟값: `20`
  • 최댓값: `2048`
| -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
  • 최솟값: `0`
  • 최댓값: `730`
| -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
  • 기본값: `1800`
  • 최솟값: `0`
  • 최댓값: `21600`
| -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
  • 기본값: `0`
  • 최솟값: `0`
  • 최댓값: `10`
| -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
  • `KR1`: 한국(판교)
  • `KR2`: 한국(평촌)
  • `JP1`: 일본(도쿄)
| -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
  • 기본값: `true`
| -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
  • 예시: `00:00:00`
| -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
  • `HALF_AN_HOUR`: 30분
  • `ONE_HOUR`: 1시간
  • `ONE_HOUR_AND_HALF`: 1시간 30분
  • `TWO_HOURS`: 2시간
  • `TWO_HOURS_AND_HALF`: 2시간 30분
  • `THREE_HOURS`: 3시간
| - - +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbVersion": "MYSQL_V8028", - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "tenantId":"tenant-id", - "username":"username", - "password":"password", - "targetContainer":"targetContainer", - "objectPath":"objectPath" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "usePublicAccess": false } ``` @@ -1610,30 +2101,48 @@ POST /v3.0/db-instances/restore-from-obs #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +

예시 +

---- +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+--- -### DB 인스턴스 삭제 보호 설정 변경하기 +### DB 인스턴스 승격하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection +POST /v3.0/db-instances/{dbInstanceId}/promote ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1644,7 +2153,8 @@ PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ``` @@ -1653,137 +2163,203 @@ PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection --- -### 고가용성 수정하기 +### DB 인스턴스 복제하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/high-availability +POST /v3.0/db-instances/{dbInstanceId}/replicate ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|---------|----|------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부 | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | X | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | X | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | X | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | ---- - -### 고가용성 다시 시작하기 +

예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} ``` -#### 요청 +

+
-이 API는 요청 본문을 요구하지 않습니다. +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | -#### 응답 +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 고가용성 일시 중지하기 +### DB 인스턴스 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause +POST /v3.0/db-instances/{dbInstanceId}/restart ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | -### 고가용성 복구하기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair +```json +{ + "useOnlineFailover": false, + "executeBackup": false, + "waitReplicationDelay": false, + "useReadOnly": false +} ``` -#### 요청 +

+
-이 API는 요청 본문을 요구하지 않습니다. +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | -#### 응답 +
예시 +

-| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### 고가용성 분리하기 +### DB 인스턴스 복원 정보 조회 ```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/split +GET /v3.0/db-instances/{dbInstanceId}/restoration-info ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 데이터 스토리지 정보 보기 +### 복원될 마지막 쿼리 조회 ```http -GET /v3.0/db-instances/{dbInstanceId}/storage-info +GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------|------|--------|--------------------------------------------------------------------------------------| -| storageType | Body | Enum | 데이터 스토리지 타입 | -| storageSize | Body | Number | 데이터 스토리지 크기(GB) | -| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- `DETACHED`: 부착되지 않음
- `ATTACHED`: 부착됨
- `DELETED`: 삭제됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| executedYmdt | Body | DateTime | 쿼리 수행 일시 | +| lastQuery | Body | String | 마지막 수행 쿼리 |
예시

@@ -1795,66 +2371,142 @@ GET /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "General SSD", - "storageSize": 20, - "storageStatus": "ATTACHED" + "executedYmdt": "2023-12-31T15:00:00+09:00", + "lastQuery": "lastQuery-example" } ```

- --- -### 데이터 스토리지 정보 수정하기 +### DB 인스턴스 복원 ```http -PUT /v3.0/db-instances/{dbInstanceId}/storage-info +POST /v3.0/db-instances/{dbInstanceId}/restore ``` -#### 요청 +#### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: 현재값
- 최댓값: `2048` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| imageId | Body | UUID | X | 이미지의 식별자 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.restoreType | Body | Enum | O | 복원 타입
- TIMESTAMP: `복원 가능한 시간 이내의 시간을 이용한 시점 복원`
- BINLOG: `복원 가능한 바이너리 로그 위치를 이용한 시점 복원`
- BACKUP: `기존에 생성한 백업을 이용한 스냅숏 복원` | +| restore.binLog.binLogFileName | Body | String | X | 복원에 사용할 바이너리 로그 이름 | +| restore.binLog.binLogPosition | Body | Object | X | 복원에 사용할 바이너리 로그 위치 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -#### 응답 +#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.restoreYmdt | Body | DateTime | X | DB 인스턴스 복원 일시 | ---- +복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. -### 백업 정보 보기 +#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) -```http -GET /v3.0/db-instances/{dbInstanceId}/backup-info -``` +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | +| restore.binLog | Body | Object | X | 복원에 사용할 바이너리 로그 정보 객체 | -#### 요청 +바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. -이 API는 요청 본문을 요구하지 않습니다. +#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "useHighAvailability": false, + "imageId": "550e8400-e29b-41d4-a716-446655440000", + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "restoreType": "TIMESTAMP", + "binLog": { + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + } + } + }, + "useDefaultNotification": false, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|---------|----------------| -| backupPeriod | Body | Number | 백업 보관 기간(일) | -| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | -| backupRetryCount | Body | Number | 백업 재시도 횟수 | -| replicationRegion | Body | Enum | 백업 복제 리전 | -| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | -| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1866,100 +2518,73 @@ GET /v3.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "backupPeriod": 1, - "ftwrlWaitTimeout": 1800, - "backupRetryCount": 0, - "replicationRegion": null, - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] + "jobId": "jobId-example" } ```

- --- -### 백업 정보 수정하기 +### DB 인스턴스 시작하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/backup-info +POST /v3.0/db-instances/{dbInstanceId}/start ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------------------------|------|---------|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "backupPeriod": 5, - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndBgnTime": "01:00:00", - "backupWndDuration": "TWO_HOURS" - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 네트워크 정보 보기 +### DB 인스턴스 정지하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/network-info +POST /v3.0/db-instances/{dbInstanceId}/stop ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------------------------------------------------------------------------------------------------------------------------------| -| availabilityZone | Body | Enum | DB 인스턴스를 생성할 가용성 영역 | -| subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | UUID | 서브넷의 식별자 | -| subnet.subnetName | Body | UUID | 서브넷을 식별할 수 있는 이름 | -| subnet.subnetCidr | Body | UUID | 서브넷의 CIDR | -| endPoints | Body | Array | 접속 정보 목록 | -| endPoints.domain | Body | String | 도메인 | -| endPoints.ipAddress | Body | String | IP 주소 | -| endPoints.endPointType | Body | Enum | 접속 정보 타입
-`EXTERNAL`: 외부 접속 도메인
-`INTERNAL`: 내부 접속 도메인
-`PUBLIC`: (Deprecated) 외부 접속 도메인
-`PRIVATE`: (Deprecated) 내부 접속 도메인 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1971,19 +2596,7 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "kr-pub-a", - "subnet": { - "subnetId": "bd453789-34ae-416c-9f78-05b9e43a46be", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/16" - }, - "endPoints": [ - { - "domain": "ea548a78-d85f-43b4-8ddf-c88d999b9905.internal.kr1.mysql.rds.nhncloudservice.com", - "ipAddress": "192.168.0.2", - "endPointType": "INTERNAL" - } - ] + "jobId": "jobId-example" } ``` @@ -1992,55 +2605,27 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info --- -### 네트워크 정보 수정하기 - -```http -PUT /v3.0/db-instances/{dbInstanceId}/network-info -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 목록 보기 +### 스토리지 정보 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/db-users +GET /v3.0/db-instances/{dbInstanceId}/storage-info ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|-----------------------------------------------------------------------------------------------------------------------------| -| dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | -| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | -| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | -| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `UPDATING`: 수정 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbUsers.authenticationPlugin | Body | Enum | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| dbUsers.tlsOption | Body | Enum | TLS Option
- NONE
- SSL
- X509 | -| dbUsers.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbUsers.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageType | Body | Enum | 데이터 스토리지 타입 | +| storageSize | Body | Number | 데이터 스토리지 크기(GB) | +| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- DELETED: `삭제됨`
- PENDING_DELETION: `삭제 유예됨`
- DELETION_RESERVED: `삭제 예약됨 (스냅샷 정리 대기)`
- DETACHED: `해제됨`
- ATTACHED: `할당됨` |

예시

@@ -2052,19 +2637,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbUsers": [ - { - "dbUserId": "4b3d530b-fd02-4d59-a620-83d019a67bbb", - "dbUserName": "db-user", - "host": "%", - "authorityType": "DDL", - "dbUserStatus": "STABLE", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE", - "createdYmdt": "2023-03-17T14:02:29+09:00", - "updatedYmdt": "2023-03-17T14:02:31+09:00" - } - ] + "storageType": "ENUM_VALUE", + "storageSize": 1, + "storageStatus": "DELETED" } ``` @@ -2073,38 +2648,25 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users --- -### DB 사용자 생성하기 +### 스토리지 정보 수정하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/db-users +PUT /v3.0/db-instances/{dbInstanceId}/storage-info ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|-------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserName | Body | String | O | DB 사용자 계정 이름
- 최소 길이: `1`
- 최대 길이: `32` | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| host | Body | String | O | DB 사용자 계정의 호스트명
- 예시: `1.1.1.%` | -| authorityType | Body | Enum | O | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | - -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 설정할 수 있습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최댓값: `2048` |

예시

```json { - "dbUserName": "db-user", - "dbPassword": "password", - "host": "1.1.1.%", - "authorityType": "CRUD", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE" + "storageSize": 1 } ``` @@ -2113,99 +2675,50 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 수정하기 - -```http -PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|-------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | -| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| authorityType | Body | Enum | X | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | - -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 수정할 수 있습니다. -> `authenticationPlugin`의 값은 `dbPassword`와 동시에 수정을 해야 합니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

```json { - "authorityType": "DDL" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 삭제하기 - -```http -DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +## DB 인스턴스 그룹 -### DB 스키마 목록 보기 +### DB 인스턴스 그룹 목록 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/db-schemas +GET /v3.0/db-instance-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|------------------------------------------------------------------------------------------------------| -| dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | -| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | -| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbSchemas.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2217,12 +2730,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSchemas": [ + "dbInstanceGroups": [ { - "dbSchemaId": "7c9a94b8-86c1-435d-8af2-82a5e9d53fd4", - "dbSchemaName": "schema", - "dbSchemaStatus": "STABLE", - "createdYmdt": "2023-03-20T13:37:45+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2233,75 +2743,81 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas --- -### DB 스키마 생성하기 +### DB 인스턴스 그룹 상세 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/db-schemas +GET /v3.0/db-instance-groups/{dbInstanceGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaName | Body | String | O | DB 스키마 이름 | +이 API는 요청 본문을 요구하지 않습니다. -#### 응답 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +#### 응답 ---- +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | -### DB 스키마 삭제하기 +

예시 +

-```http -DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} ``` -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 로그 파일 목록 보기 +## DB 인스턴스 사양 + +### DB 인스턴스 사양 목록 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/log-files +GET /v3.0/db-flavors ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|-------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileTypes | Query | Array | X | 로그 파일 타입 종류 목록
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| logFiles | Body | Array | 로그 파일 목록 | -| logFiles.logFileName | Body | String | 로그 파일 이름 | -| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | -| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | -| logFiles.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -2313,12 +2829,9 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files "resultMessage": "SUCCESS", "isSuccessful": true }, - "logFiles": [ + "dbFlavors": [ { - "logFileName": "xtra_full.log-20230317", - "logFileType": "BACKUP", - "logFileSize": 4096, - "createdYmdt": "2023-03-17T14:02:29+09:00" + "vcpus": 1 } ] } @@ -2329,95 +2842,65 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files --- -### 로그 파일 내보내기 +## storages + +### 스토리지 목록 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/log-files/export +GET /v3.0/storages ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|--------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileNames | Body | Array | O | 로그 파일 이름 목록
- 최소 크기: `1` | -| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storages | Body | Array | 스토리지 목록 |

예시

```json { - "logFileNames": ["xtra_full.log-20230317"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "logs/backup" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storages": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +## 네트워크 -### 백업 목록 조회 +### 서브넷 목록 보기 ```http -GET /v3.0/backups +GET /v3.0/network/subnets ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|--------|----|----------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| backupType | Query | Enum | X | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동
- 기본값: 전체 | -| dbInstanceId | Query | UUID | X | 원본 DB 인스턴스의 식별자 | -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|-----------------------------------| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | UUID | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태 | -| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형 | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |
예시

@@ -2429,19 +2912,9 @@ GET /v3.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "backups": [ + "subnets": [ { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupSize": 4996786, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" + "availableIpCount": 1 } ] } @@ -2452,168 +2925,118 @@ GET /v3.0/backups --- -### 백업 내보내기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v3.0/backups/{backupId}/export +GET /v3.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storageTypes": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - -> [주의] -> 수동 백업의 경우 백업이 수행된 DB 인스턴스가 존재하지 않으면, 백업을 오브젝트 스토리지로 내보낼 수 없습니다. - --- -### 백업 복원하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v3.0/backups/{backupId}/restore +GET /v3.0/metric-statistics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Integer | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | - -
예시 -

- -```json - -{ - "dbInstanceName": "db-instance-restore", - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbPort": 10000, - "parameterGroupId": "132d383c-38e3-468a-a826-5e9a8fff15d0", - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 백업 삭제하기 +### Metric 목록 보기 ```http -DELETE /v3.0/backups/{backupId} +GET /v3.0/metrics ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "metrics": [ + { + "unit": "unit-example" + } + ] +} +``` + +

+
--- -## DB 보안 그룹 +## 백업 -### DB 보안 그룹 진행 상태 +### 백업 상태 -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | -### DB 보안 그룹 목록 보기 +### 백업 목록 조회 ```http -GET /v3.0/db-security-groups +GET /v3.0/backups ``` #### 요청 @@ -2622,15 +3045,20 @@ GET /v3.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-----------------------------------| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2642,14 +3070,10 @@ GET /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "totalCounts": 1, + "backups": [ { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2022-02-19T19:18:13+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2660,42 +3084,25 @@ GET /v3.0/db-security-groups --- -### DB 보안 그룹 상세 보기 +### 백업 삭제하기 ```http -GET /v3.0/db-security-groups/{dbSecurityGroupId} +DELETE /v3.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|----------|--------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다.
- `PORT`: 지정된 포트값으로 설정됩니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | 허용할 트래픽의 원격 소스 | -| rules.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| rules.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2707,30 +3114,7 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "rules": [ - { - "ruleId": "17c88ef6-95f1-4678-84f9-fee1b22e250d", - "description": "description", - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } - ], - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } + "jobId": "jobId-example" } ``` @@ -2739,50 +3123,33 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 생성하기 +### 백업 내보내기 ```http -POST /v3.0/db-security-groups +POST /v3.0/backups/{backupId}/export ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "rules": [ - { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0" - } - ] + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -2791,33 +3158,105 @@ POST /v3.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|------|---------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### DB 보안 그룹 수정하기 +### 백업 복원하기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId} +POST /v3.0/backups/{backupId}/restore ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|-----------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` |
예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } } ``` @@ -2826,7 +3265,9 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2837,33 +3278,37 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ```

- --- -### DB 보안 그룹 삭제하기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2874,7 +3319,12 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "userGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -2883,42 +3333,28 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 규칙 생성하기 +### 사용자 그룹 생성하기 ```http -POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v3.0/user-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT", - "minPort": 10000, - "maxPort": 10000 - }, - "cidr": "0.0.0.0/0" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -2927,178 +3363,74 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 보안 그룹 규칙 수정하기 - -```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleId | URL | UUID | O | DB 보안 그룹 규칙의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "DB_PORT" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "0.0.0.0/0" + "userGroupId": "userGroupId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 보안 그룹 규칙 삭제하기 - -```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|-------|----|---------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleIds | Query | Array | O | DB 보안 그룹 규칙의 식별자 목록 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 +### 사용자 그룹 삭제하기 ```http -GET /v3.0/parameter-groups +DELETE /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------|-------|------|----|----------| -| dbVersion | Query | Enum | X | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-------------------------------------------------------------------| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "parameterGroups": [ - { - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "createdYmdt": "2023-02-31T15:28:17+09:00", - "updatedYmdt": "2023-02-31T15:28:17+09:00" - } - ] -} -``` - -

-
- +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 상세 보기 +### 사용자 그룹 상세 보기 ```http -GET /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|--------------------------------------------------------------------------------------------------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | UUID | 파라미터 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- `CLIENT`: client
- `MYSQL`: mysql
- `MYSQLD`: mysqld | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- `VARIABLE`: 언제든 수정 가능
- `CONSTANT`: 수정 불가능
- `INIT_VARIABLE`: DB 인스턴스 생성 시에만 수정 가능 | -| parameters.applyType | Body | Enum | 적용 타입
- `SESSION`: 세션 적용
- `FILE`: 설정 파일 적용(재시작 필요)
- `BOTH`: 전체(재시작 필요) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3110,56 +3442,47 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "parameters": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "parameterId": "fa040b5e-f29f-46de-8f0d-bba4cb82887a", - "parameterFileGroup": "client", - "parameterName": "socket", - "fileParameterName": "socket", - "value": "/home/tcrds/db/mysql/tmp/mysql.sock", - "defaultValue": "/home/tcrds/db/mysql/tmp/mysql.sock", - "allowedValue": "", - "updateType": "CONSTANT", - "applyType": "BOTH" + "memberId": "memberId-example" } ], - "createdYmdt": "2023-03-13T11:02:28+09:00", - "updatedYmdt": "2023-03-13T11:02:28+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

- --- -### 파라미터 그룹 생성하기 +### 사용자 그룹 수정하기 ```http -POST /v3.0/parameter-groups +PUT /v3.0/user-groups/{userGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |
예시

```json { - "parameterGroupName": "parameter-group", - "dbVersion": "MYSQL_V8028" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -3168,67 +3491,86 @@ POST /v3.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 복사하기 +## 알림 그룹 + +### 알림 그룹 목록 보기 ```http -POST /v3.0/parameter-groups/{parameterGroupId}/copy +GET /v3.0/notification-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "parameterGroupName": "parameter-group-copy", - "description": "copy" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "notificationGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | - --- -### 파라미터 그룹 수정하기 +### 알림 그룹 생성하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId} +POST /v3.0/notification-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |
예시

```json { - "parameterGroupName": "parameter-group" + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], + "userGroupIds": [] } ``` @@ -3237,7 +3579,9 @@ PUT /v3.0/parameter-groups/{parameterGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3248,7 +3592,8 @@ PUT /v3.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3257,75 +3602,57 @@ PUT /v3.0/parameter-groups/{parameterGroupId} --- -### 파라미터 수정하기 +### 알림 그룹 삭제하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/parameters +DELETE /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------|------|--------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | - -

예시 -

- -```json -{ - "modifiedParameters": [ - { - "parameterId": "3abac558-7274-44e1-9f4a-f100f53f67ba", - "value": "0" - } - ] -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } -} -``` - -

-
- --- -### 파라미터 그룹 재설정하기 +### 알림 그룹 상세 보기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/reset +GET /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3336,7 +3663,24 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/reset "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ + { + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3345,48 +3689,66 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/reset --- -### 파라미터 그룹 삭제하기 +### 알림 그룹 수정하기 ```http -DELETE /v3.0/parameter-groups/{parameterGroupId} +PUT /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 사용자 그룹 +## 이벤트 -### 사용자 그룹 목록 보기 +### 이벤트 카테고리 + +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. + +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | + +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v3.0/user-groups +GET /v3.0/event-codes ``` #### 요청 @@ -3395,13 +3757,11 @@ GET /v3.0/user-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|-----------------------------------| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |
예시

@@ -3413,12 +3773,9 @@ GET /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "eventCodes": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "eventCategoryType": "ALL" } ] } @@ -3429,31 +3786,30 @@ GET /v3.0/user-groups --- -### 사용자 그룹 상세 보기 +### 이벤트 목록 조회 ```http -GET /v3.0/user-groups/{userGroupId} +GET /v3.0/events ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|----------|-----------------------------------------------------------------------------------------------------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
`ENTIRE`: 프로젝트 멤버 전체를 포함하는 사용자 그룹
`INDIVIDUAL_MEMBER`: 특정 프로젝트 멤버를 포함하는 사용자 그룹 | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

@@ -3465,16 +3821,12 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "userGroupTypeCode": "INDIVIDUAL_MEMBER", - "members": [ + "totalCounts": 1, + "events": [ { - "memberId": "1321e759-2ef3-4b85-9921-b13e918b24b5" + "eventYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + ] } ``` @@ -3483,75 +3835,99 @@ GET /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 생성하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v3.0/user-groups +GET /v3.0/event-subscriptions ``` -#### 요청 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|-------------------------------------------------------------| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록
`selectAllYN`이 true인 경우 해당 필드 값은 무시됨 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |

예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } ] } ``` -```json -{ - "userGroupName": "dev-team", - "selectAllYN":true -} -``` -

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------------|------|------|-------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | - --- -### 사용자 그룹 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v3.0/user-groups/{userGroupId} +POST /v3.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|----------------------------------------------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | -| userGroupName | Body | String | X | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5", - "f9064b09-2b15-442e-a4b0-3a5a2754555e" - ] + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ``` @@ -3560,7 +3936,9 @@ PUT /v3.0/user-groups/{userGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -3571,7 +3949,8 @@ PUT /v3.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -3580,64 +3959,121 @@ PUT /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 삭제하기 +### 이벤트 구독 삭제하기 ```http -DELETE /v3.0/user-groups/{userGroupId} +DELETE /v3.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v3.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 알림 그룹 +## 작업 정보 -### 알림 그룹 목록 보기 +### 작업 상태 + +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 ```http -GET /v3.0/notification-groups +GET /v3.0/jobs/{jobId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------------|------|----------|-----------------------------------| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3649,17 +4085,15 @@ GET /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ { - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "resourceId": "resourceId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3668,37 +4102,30 @@ GET /v3.0/notification-groups --- -### 알림 그룹 상세 보기 +## 파라미터 그룹 + +### 파라미터 그룹 목록 보기 ```http -GET /v3.0/notification-groups/{notificationGroupId} +GET /v3.0/parameter-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------------|------|----------|-----------------------------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3710,25 +4137,11 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "dbInstances": [ - { - "dbInstanceId": "ed5cb985-526f-4c54-9ae0-40288593de65", - "dbInstanceName": "database" - } - ], - "userGroups": [ + "parameterGroups": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + ] } ``` @@ -3737,37 +4150,28 @@ GET /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v3.0/notification-groups +POST /v3.0/parameter-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------------| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "notificationGroupName": "dev-team-noti", - "notifyEmail": false, - "isEnable": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65" - ], - "userGroupIds": [ - "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0" - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -3776,49 +4180,84 @@ POST /v3.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|------|------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "parameterGroupId": "parameterGroupId-example" +} +``` + +

+
--- -### 알림 그룹 수정하기 +### 파라미터 그룹 삭제하기 ```http -PUT /v3.0/notification-groups/{notificationGroupId} +DELETE /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부 | -| notifySms | Body | Boolean | X | SMS 알림 여부 | -| isEnabled | Body | Boolean | X | 활성화 여부 | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +이 API는 요청 본문을 요구하지 않습니다. -
예시 -

+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -```json -{ - "notifyEmail": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65", - "d51b7da0-682f-47ff-b588-b739f6adc740" - ] -} +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 파라미터 그룹 상세 보기 + +```http +GET /v3.0/parameter-groups/{parameterGroupId} ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3829,7 +4268,19 @@ PUT /v3.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ + { + "applyType": "BOTH" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3838,61 +4289,71 @@ PUT /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 수정하기 ```http -DELETE /v3.0/notification-groups/{notificationGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 모니터링 +이 API는 응답 본문을 반환하지 않습니다. -### Metric 목록 보기 +--- + +### 파라미터 그룹 복사하기 ```http -GET /v3.0/metrics +POST /v3.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|--------|-----------| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | Enum | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -3904,12 +4365,7 @@ GET /v3.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "measureName": "CPU_USAGE", - "unit": "%" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3918,56 +4374,29 @@ GET /v3.0/metrics --- -### 통계 정보 조회 +### 파라미터 수정하기 ```http -GET /v3.0/metric-statistics +PUT /v3.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|----------|----|-----------------------------------| -| dbInstanceId | Query | UUID | O | DB 인스턴스의 식별자 | -| measureNames | Query | Array | O | 조회 지표 목록
- 최소 크기: `1` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| interval | Query | Number | X | 조회 간격 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|-----------|----------| -| metricStatistics | Body | Array | 통계 정보 목록 | -| metricStatistics.measureName | Body | Enum | 측정 항목 유형 | -| metricStatistics.unit | Body | String | 측정값 단위 | -| metricStatistics.values | Body | Array | 측정값 목록 | -| metricStatistics.values.timestamp | Body | Timestamp | 측정 시간 | -| metricStatistics.values.value | Body | Object | 측정값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "metricStatistics": [ + "modifiedParameters": [ { - "measureName": "MYSQL_STATUS", - "unit": "", - "values": [ - [ - 1679298540, - "1" - ], - [ - 1679298600, - "1" - ], - [ - 1679298660, - "1" - ] - ] + "value": "value-example" } ] } @@ -3976,58 +4405,53 @@ GET /v3.0/metric-statistics

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 +### 파라미터 그룹 재설정하기 -### 이벤트 카테고리 +```http +PUT /v3.0/parameter-groups/{parameterGroupId}/reset +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 이벤트 목록 조회 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 프로젝트 정보 + +### 프로젝트 멤버 목록 보기 ```http -GET /v3.0/events +GET /v3.0/project/members ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| eventCategoryType | Query | Enum | O | 조회할 이벤트 카테고리 유형
- `ALL`: 전체
- `INSTANCE`: DB 인스턴스
- `BACKUP`: 백업
- `DB_SECURITY_GROUP`: DB 보안 그룹
- `TENANT`: 테넌트 | -| sourceId | Query | String | X | 이벤트가 발생한 대상 리소스의 식별자 | -| keyword | Query | String | X | 이벤트 메시지에 포함된 문자열 검색어 | -| ascendingOrder | Query | Enum | X | 이벤트 메시지 정렬 순서
- `ASC`: 오름차순
- `DESC`: 내림차순
- 기본값: `DESC` | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|---------------------------------------| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메시지 목록 | -| events.messages.langCode | Body | String | 언어 코드 | -| events.messages.message | Body | String | 이벤트 메시지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -4039,32 +4463,9 @@ GET /v3.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 28, - "events": [ + "members": [ { - "eventCategoryType": "INSTANCE", - "eventCode": "INSTC_02_01", - "sourceId": "76f00947-356e-4a20-8922-428368cc45ed", - "sourceName": "db-instance", - "messages": [ - { - "langCode": "EN", - "message": "DB instance started" - }, - { - "langCode": "JA", - "message": "DBインスタンスの起動" - }, - { - "langCode": "KO", - "message": "DB 인스턴스 시작" - }, - { - "langCode": "ZH", - "message": "DB instance started" - } - ], - "eventYmdt": "2023-03-20T16:31:59+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -4075,10 +4476,10 @@ GET /v3.0/events --- -### 구독 가능한 이벤트 코드 목록 보기 +### 리전 목록 보기 ```http -GET /v3.0/event-codes +GET /v3.0/project/regions ``` #### 요청 @@ -4087,11 +4488,11 @@ GET /v3.0/event-codes #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|-------|-------------| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

@@ -4103,10 +4504,9 @@ GET /v3.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "regions": [ { - "eventCode": "INSTC_05_01", - "eventCategoryType": "INSTANCE" + "isEnabled": false } ] } @@ -4116,3 +4516,4 @@ GET /v3.0/event-codes

--- + diff --git a/ko/api-guide-v3.0-ngsc.md b/ko/api-guide-v3.0-ngsc.md index 902a8241..76a9a8b6 100644 --- a/ko/api-guide-v3.0-ngsc.md +++ b/ko/api-guide-v3.0-ngsc.md @@ -1,35 +1,32 @@ ## Database > RDS for MySQL > API 가이드 -| 리전 | 엔드포인트 | -|-----------|-----------------------------------------------| -| 한국(판교) 리전 | https://kr4-rds-mysql-api.ngsc.go.kr | +## RDS for MySQL API 공통 정보 -## 인증 및 권한 +### 인증 및 권한 -API를 사용하려면 인증에 필요한 `User Access Key ID`와 `Secret Access Key`가 필요합니다. 콘솔 우측 상단의 계정에 마우스 포인터를 올리면 표시되는 드롭다운 메뉴에서 API 보안 설정을 선택해 생성할 수 있습니다. -생성된 Key는 Appkey와 함께 요청 Header에 포함해야 합니다. +RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. +발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------|--------|--------|----|-------------------------------------------------------------| -| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-TC-AUTHENTICATION-ID | Header | String | O | API 보안 설정 메뉴의 User Access Key ID | -| X-TC-AUTHENTICATION-SECRET | Header | String | O | API 보안 설정 메뉴의 Secret Access Key | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | +| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | -또한 프로젝트 멤버 역할에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER`로 구분하여 권한을 부여할 수 있습니다. +또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. -* `RDS for MySQL ADMIN` 권한은 모든 기능을 사용 가능합니다. -* `RDS for MySQL VIEWER` 권한은 정보를 조회하는 기능만 사용 가능합니다. +* `RDS for MySQL ADMIN` 역할은 API 실행에 필요한 모든 권한이 부여됩니다. +* `RDS for MySQL VIEWER` 역할은 정보를 조회하는 권한만 부여됩니다. * DB 인스턴스를 생성, 수정, 삭제하거나, DB 인스턴스를 대상으로 하는 어떠한 기능도 사용할 수 없습니다. - * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용 가능합니다. + * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용할 수 있습니다. API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같은 오류가 발생합니다. -| resultCode | resultMessage | 설명 | -|------------|---------------|-------------| -| 80401 | Unauthorized | 인증에 실패했습니다. | -| 80403 | Forbidden | 권한이 없습니다. | +| resultCode | resultMessage | 설명 | +|------------|---------------|-----| +| 80401 | Unauthorized | 인증에 실패했습니다. | +| 80403 | Forbidden | 권한이 없습니다. | -## 응답 공통 정보 +### 응답 공통 정보 모든 API 요청에 '200 OK'로 응답합니다. 자세한 응답 결과는 응답 본문의 헤더를 참고합니다. @@ -45,47 +42,66 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 ``` #### 필드 -| 이름 | 형식 | 설명 | -|---------------|---------|-----------------------------------------| -| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | -| resultMessage | String | 결과 메시지 | -| isSuccessful | Boolean | 성공 여부 | - - -## DB 엔진 유형 - -| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 정보 | -|--------------|----------|-----------------|--------| -| MYSQL\_V5633 | X | X | NATIVE | -| MYSQL\_V5715 | O | O | NATIVE | -| MYSQL\_V5719 | O | O | NATIVE | -| MYSQL\_V5726 | O | O | NATIVE | -| MYSQL\_V5731 | X | X | NATIVE | -| MYSQL\_V5733 | O | X | NATIVE, SHA256 | -| MYSQL\_V5737 | O | O | NATIVE, SHA256 | -| MYSQL\_V8018 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8023 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8028 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8032 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8033 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8034 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8405 | O | O | CACHING_SHA2 | +| 이름 | 형식 | 설명 | +|-----|-----|-----| +| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | +| resultMessage | String | 결과 메시지 | +| isSuccessful | Boolean | 성공 여부 | + +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(대구) 리전 | https://ngsc-kr4-rds-proxy.cloud.toastoven.net | + +### DB 엔진 유형 + +| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | +|------------|----------|------------------|------------| +| MYSQL_V5633 | X | X | NATIVE | +| MYSQL_V5715 | O | O | NATIVE | +| MYSQL_V5719 | O | O | NATIVE | +| MYSQL_V5726 | O | O | NATIVE | +| MYSQL_V5731 | X | X | NATIVE | +| MYSQL_V5733 | O | X | NATIVE, SHA256 | +| MYSQL_V5737 | O | O | NATIVE, SHA256 | +| MYSQL_V8018 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8023 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8028 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8032 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8033 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8034 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8405 | O | O | CACHING_SHA2 | +| MYSQL_V8406 | O | O | CACHING_SHA2 | +| MYSQL_V8407 | O | O | CACHING_SHA2 | +| MYSQL_V8408 | O | O | CACHING_SHA2 | * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## 프로젝트 정보 +## DB 보안 그룹 -### 리전 목록 보기 +### DB 보안 그룹 진행 상태 + +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | + +### DB 보안 그룹 목록 보기 ```http -GET /v3.0/project/regions +GET /v3.0/db-security-groups ``` #### 요청 @@ -94,11 +110,15 @@ GET /v3.0/project/regions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------|------|---------|----------------------------------------------------------------------------| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -110,63 +130,51 @@ GET /v3.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ - { - "regionCode": "KR1", - "isEnabled": true - }, - { - "regionCode": "KR2", - "isEnabled": true - }, + "dbSecurityGroups": [ { - "regionCode": "JP1", - "isEnabled": true + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } ``` +

--- -### 프로젝트 멤버 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v3.0/project/members +POST /v3.0/db-security-groups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|--------|-----------------| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ { - "memberId": "1b1d3627-507a-49ea-8cb7-c86dfa9caa58", - "memberName": "홍길동", - "emailAddress": "gildong.hong@nhn.com", - "phoneNumber": "+821012345678" + "description": "description-example" } ] } @@ -175,29 +183,11 @@ GET /v3.0/project/members

---- - -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 - -```http -GET /v3.0/db-flavors -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -209,14 +199,7 @@ GET /v3.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbFlavorName": "m2.c1m2", - "ram": 2048, - "vcpus": 1 - } - ] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -225,76 +208,63 @@ GET /v3.0/db-flavors --- -## 네트워크 - -### 서브넷 목록 보기 +### DB 보안 그룹 삭제하기 ```http -GET /v3.0/network/subnets +DELETE /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|---------|------------------| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | UUID | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | - -

예시 -

+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "subnets": [ - { - "subnetId": "1b2a9b23-0725-4b92-8c78-35db66b8ad9f", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/24", - "usingGateway": true, - "availableIpCount": 240 - } - ] -} -``` +#### 응답 -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -## DB 엔진 - -### DB 엔진 목록 보기 +### DB 보안 그룹 상세 보기 ```http -GET /v3.0/db-versions +GET /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|---------|-----------------------| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroup | Body | Object | DB 보안 그룹 | +| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | +| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | +| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | +| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | +| dbSecurityGroup.rules.cidr | Body | String | CIDR | +| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | +| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -306,13 +276,19 @@ GET /v3.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ - { - "dbVersion": "MYSQL_V8028", - "dbVersionName": "MySQL 8.0.28", - "restorableFromObs": true - } - ] + "dbSecurityGroup": { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -321,61 +297,59 @@ GET /v3.0/db-versions --- -## 데이터 스토리지 - -### 데이터 스토리지 타입 목록 보기 +### DB 보안 그룹 수정하기 ```http -GET /v3.0/storage-types +PUT /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|-------|----------------| -| storageTypes | Body | Array | 데이터 스토리지 타입 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "storageTypes": [ - "General SSD", - "General HDD" - ] + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 데이터 스토리지 목록 보기 +### DB 보안 그룹 규칙 삭제하기 ```http -GET /v3.0/storages +DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------|------|-------|-------------| -| storages | Body | Array | 데이터 스토리지 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -387,10 +361,7 @@ GET /v3.0/storages "resultMessage": "SUCCESS", "isSuccessful": true }, - "storages": [ - "General SSD", - "General HDD" - ] + "jobId": "jobId-example" } ``` @@ -399,50 +370,51 @@ GET /v3.0/storages --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### DB 보안 그룹 규칙 생성하기 ```http -GET /v3.0/jobs/{jobId} +POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | + +

예시 +

+ +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------|-----|------|----|---------| -| jobId | URL | UUID | O | 작업의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------|------|----------|-----------------------------------| -| jobId | Body | UUID | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태 | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | Enum | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | UUID | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -454,16 +426,7 @@ GET /v3.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "0ddb042c-5af6-43fb-a914-f4dd0540eb7c", - "jobStatus": "RUNNING", - "resourceRelations": [ - { - "resourceType": "DB_INSTANCE", - "resourceId": "56b39dcf-65eb-47ec-9d4f-09f160ba2266" - } - ], - "createdYmdt": "2023-02-22T20:47:12+09:00", - "updatedYmdt": "2023-02-22T20:49:46+09:00" + "jobId": "jobId-example" } ``` @@ -472,27 +435,52 @@ GET /v3.0/jobs/{jobId} --- -## DB 인스턴스 그룹 - -### DB 인스턴스 그룹 목록 보기 +### DB 보안 그룹 규칙 수정하기 ```http -GET /v3.0/db-instance-groups +PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | + +

예시 +

+ +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------|------|----------|--------------------------------------------------------------------------| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -504,14 +492,7 @@ GET /v3.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ - { - "dbInstanceGroupId": "05de0746-89fd-49c8-94f9-9c5b1df97009", - "replicationType": "STANDALONE", - "createdYmdt": "2023-02-13T17:35:20+09:00", - "updatedYmdt": "2023-02-13T17:35:20+09:00" - } - ] + "jobId": "jobId-example" } ``` @@ -520,32 +501,26 @@ GET /v3.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v3.0/db-instance-groups/{dbInstanceGroupId} +GET /v3.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|-----------------| -| dbInstanceGroupId | URL | UUID | O | DB 인스턴스 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |

예시

@@ -557,17 +532,11 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "36617a8e-0df8-4b16-b6ea-6306019e95da", - "replicationType": "STANDALONE", - "dbInstances": [ + "dbVersions": [ { - "dbInstanceId": "6d2db0ef-fe9b-4ed4-97b1-d97fcb4cf1b8", - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE" + "restorableFromObs": false } - ], - "createdYmdt": "2023-03-03T17:38:14+09:00", - "updatedYmdt": "2023-03-03T17:38:14+09:00" + ] } ``` @@ -600,8 +569,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | `BACKING_UP` | 백업 중 | | `CANCELING` | 취소 중 | | `CREATING` | 생성 중 | -| `CREATING_SCHEMA` | DB 스키마 생성 중 | -| `CREATING_USER` | 사용자 생성 중 | +| `CREATING_SCHEMA` | DB 스키마 생성 중 | +| `CREATING_USER` | 사용자 생성 중 | | `DELETING` | 삭제 중 | | `DELETING_SCHEMA` | DB 스키마 삭제 중 | | `DELETING_USER` | 사용자 삭제 중 | @@ -620,8 +589,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | `STARTING` | 시작 중 | | `STOPPING` | 정지 중 | | `SYNCING_SCHEMA` | DB 스키마 동기화 중 | -| `SYNCING_USER` | 사용자 동기화 중 | -| `UPDATING_USER` | 사용자 수정 중 | +| `SYNCING_USER` | 사용자 동기화 중 | +| `UPDATING_USER` | 사용자 수정 중 | ### DB 인스턴스 목록 보기 @@ -635,20 +604,20 @@ GET /v3.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | -| dbInstances.dbPort | Body | Number | DB 포트 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태 | -| dbInstances.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstances.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstances | Body | Array | DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | +| dbInstances.dbPort | Body | Number | DB 포트 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbInstances.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstances.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -662,17 +631,7 @@ GET /v3.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "createdYmdt": "2023-01-23T12:03:13+09:00", - "updatedYmdt": "2023-02-02T17:20:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -683,44 +642,104 @@ GET /v3.0/db-instances --- -### DB 인스턴스 상세 보기 +### DB 인스턴스 생성하기 ```http -GET /v3.0/db-instances/{dbInstanceId} +POST /v3.0/db-instances ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| authenticationPlugin | Body | Enum | X | 인증 Plugin
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | TLS Option
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE", + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| dbPort | Body | Number | DB 포트 | -| dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| progressStatus | Body | Enum | DB 인스턴스의 현재 작업 진행 상태 | -| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | -| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | -| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | -| supportAuthenticationPlugin | Body | Boolean | 인증 플러그인 지원 여부 | -| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | -| needMigration | Body | Boolean | 마이그레이션 필요 여부 | -| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -732,26 +751,7 @@ GET /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "dbFlavorId": "e9ed4ef6-78d7-46fa-ace9-32481e97f3b7", - "parameterGroupId": "b03e8b13-de27-4d04-a488-ff5689589372", - "dbSecurityGroupIds": ["01908c35-d2c9-4852-baf0-17f06ec42c03"], - "notificationGroupIds": ["83a62a33-ddbf-4a04-8653-e54463d5b1ac"], - "useDeletionProtection": false, - "supportAuthenticationPlugin": true, - "needToApplyParameterGroup": false, - "needMigration": false, - "supportDbVersionUpgrade": true, - "createdYmdt": "2022-11-23T12:03:13+09:00", - "updatedYmdt": "2022-12-02T17:20:17+09:00" + "jobId": "jobId-example" } ``` @@ -760,131 +760,769 @@ GET /v3.0/db-instances/{dbInstanceId} --- -### DB 인스턴스 생성하기 +### 오브젝트 스토리지를 이용한 DB 인스턴스 복원 ```http -POST /v3.0/db-instances +POST /v3.0/db-instances/restore-from-obs ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|---------------------------------------------------------------------| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbUserName | Body | String | O | DB 사용자 계정명 | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| imageId | Body | UUID | X | 이미지의 식별자 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | +| restore.username | Body | String | O | NHN Cloud 계정 혹은 IAM 멤버 ID | +| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | +| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | +| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "dbVersion": "ENUM_VALUE", + "useHighAvailability": false, + "imageId": "550e8400-e29b-41d4-a716-446655440000", + "pingInterval": 3, "storage": { - "storageType": "General SSD", + "storageType": "ENUM_VALUE", "storageSize": 20 }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, "backup": { - "backupPeriod": 1, + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": true, "backupSchedules": [ { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR" + "backupWndDuration": "HALF_AN_HOUR" } ] - } -} -``` + }, + "restore": { + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" + }, + "useDefaultNotification": false, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 인스턴스 삭제하기 + +```http +DELETE /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 상세 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| dbPort | Body | Number | DB 포트 | +| dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | +| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | +| supportAuthenticationPlugin | Body | Boolean | 인증 plugin 지원 여부 | +| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | +| needMigration | Body | Boolean | 마이그레이션 필요 여부 | +| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "dbFlavorId": "dbFlavorId-example", + "parameterGroupId": "parameterGroupId-example", + "dbSecurityGroupIds": [], + "notificationGroupIds": [], + "useDeletionProtection": false, + "supportAuthenticationPlugin": false, + "needToApplyParameterGroup": false, + "needMigration": false, + "supportDbVersionUpgrade": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ +--- + +### DB 인스턴스 수정하기 + +```http +PUT /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbVersion | Body | Enum | X | DB 엔진 버전 코드 | +| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
- 기본값: `false` | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbPort": 1, + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "useDummy": false, + "dbSecurityGroupIds": [], + "executeBackup": false, + "useOnlineFailover": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 백업하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/backup +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "backupName": "backupName" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 백업 정보 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backupPeriod | Body | Number | 백업 보관 기간(일) | +| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | +| backupRetryCount | Body | Number | 백업 재시도 횟수 | +| replicationRegion | Body | Enum | 백업 복제 리전
- KR4: `한국(대구)` | +| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration
- HALF_AN_HOUR
- ONE_HOUR
- ONE_HOUR_AND_HALF
- TWO_HOURS
- TWO_HOURS_AND_HALF
- THREE_HOURS | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "backupPeriod": 1, + "ftwrlWaitTimeout": 1, + "backupRetryCount": 1, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +--- + +### 백업 정보 수정하기 + +```http +PUT /v3.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +
예시 +

+ +```json +{ + "backupPeriod": 0, + "ftwrlWaitTimeout": 0, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 오브젝트 스토리지로 백업 + +```http +POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | + +
예시 +

+ +```json +{ + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 테스트 용 DB 이미지 메타 변경 + +```http +PUT /v3.0/db-instances/{dbInstanceId}/change-image-meta +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 스키마 목록 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSchemas | Body | Array | DB 스키마 목록 | +| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | +| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | +| dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbSchemas": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### DB 스키마 생성하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbSchemaName | Body | String | O | DB 스키마 이름
- 최대 길이: `64`
- 영문 시작, 영문/숫자/_ 허용, 1~64자, MySQL 예약어 불가 | + +
예시 +

+ +```json +{ + "dbSchemaName": "dbSchemaName-example" +} +```

#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 스키마 삭제하기 + +```http +DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbSchemaId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 사용자 목록 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/db-users +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbUsers | Body | Array | DB 사용자 목록 | +| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | +| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | +| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- STABLE
- CREATING
- UPDATING
- SYNCING
- DELETING
- DELETED | +| dbUsers.createdYmdt | Body | DateTime | 생성 일시 | +| dbUsers.updatedYmdt | Body | DateTime | 수정 일시 | +| dbUsers.authenticationPlugin | Body | Enum | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| dbUsers.tlsOption | Body | Enum | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbUsers": [ + { + "tlsOption": "NONE" + } + ] +} +``` + +

+
--- -### DB 인스턴스 수정하기 +### DB 사용자 생성하기 ```http -PUT /v3.0/db-instances/{dbInstanceId} +POST /v3.0/db-instances/{dbInstanceId}/db-users ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|--------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbPort | Body | Number | X | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbVersion | Body | Enum | X | DB 엔진 유형 | -| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
기본값: `false` | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| host | Body | String | O | DB 사용자 계정의 호스트명
- 최대 길이: `45` | +| authorityType | Body | Enum | O | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |
예시

```json { - "dbInstanceName": "db-instance2", - "description": "description2", - "dbPort": 10001, - "dbSecurityGroupIds": [], - "executeBackup": true + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "host": "host-example", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" } ``` @@ -893,70 +1531,106 @@ PUT /v3.0/db-instances/{dbInstanceId} #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### DB 인스턴스 삭제하기 +### DB 사용자 삭제하기 ```http -DELETE /v3.0/db-instances/{dbInstanceId} +DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | ---- - -### DB 인스턴스 재시작하기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/restart +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} ``` -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +

+
-#### 응답 +--- -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +### DB 사용자 수정하기 ---- -### DB 인스턴스 강제 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/force-restart +PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserId | URL | UUID | O | | +| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| authorityType | Body | Enum | X | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "dbPassword": "dbPassword", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` +

+
#### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -967,282 +1641,228 @@ POST /v3.0/db-instances/{dbInstanceId}/force-restart "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ```

- --- -### DB 인스턴스 시작하기 +### DB 인스턴스 삭제 보호 설정 변경 ```http -POST /v3.0/db-instances/{dbInstanceId}/start +PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | + +
예시 +

+ +```json +{ + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 정지하기 +### DB 인스턴스 강제 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/stop +POST /v3.0/db-instances/{dbInstanceId}/force-restart ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 백업하기 +### 고가용성 수정하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/backup +PUT /v3.0/db-instances/{dbInstanceId}/high-availability ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|-----------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupName | Body | String | O | 백업을 식별할 수 있는 이름 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -### DB 인스턴스 백업 후 내보내기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage +```json +{ + "useHighAvailability": false, + "pingInterval": 1 +} ``` -#### 요청 +

+
+ +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 복제하기 +### 고가용성 일시 중지하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/replicate +POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록
- 기본값: 원본 DB 인스턴스 값 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: 원본 DB 인스턴스 값 | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄)
- 기본값: 원본 DB 인스턴스 값 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00`
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간
- 기본값: 원본 DB 인스턴스 값 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance-replicate", - "description": "description", - "dbPort": 11000, - "network": { - "availabilityZone": "kr-pub-a" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "storage": { - "stroageSize": 100 - } + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 승격하기 +### 고가용성 복구하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/promote +POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### 복원 정보 조회 +### 고가용성 다시 시작하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/restoration-info +POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | -| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | -| restorableBackups | Body | Array | 복원 가능한 백업 목록 | -| restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | -| restorableBackups.backup.backupName | Body | String | 백업 이름 | -| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | -| restorableBackups.backup.backupType | Body | Enum | 백업 유형
  • `AUTO`: 자동
  • `MANUAL`: 수동
| -| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
  • `BACKING_UP`: 백업 중인 경우
  • `COMPLETED`: 백업이 완료된 경우
  • `DELETING`: 백업이 삭제 중인 경우
  • `DELETED`: 백업이 삭제된 경우
  • `ERROR`: 오류가 발생한 경우
| -| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| restorableBackups.backup.dbVersion | Body | String | DB 엔진 유형 | -| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | -| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | -| restorableBackups.backup.binLogPosition | Body | Number | 바이너리 로그 파일 위치 | -| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | -| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | -| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "oldestRestorableYmdt": "2023-07-09T16:33:33+09:00", - "latestRestorableYmdt": "2023-07-10T15:44:44+09:00", - "restorableBackups": [ - { - "backup": { - "backupId": "145d889a-fe08-474f-8f58-bde576ff96a9", - "backupName": "example-backup-name", - "backupStatus": "COMPLETED", - "dbInstanceId": "dba1be25-9429-4589-9716-7fb6daad7cb9", - "dbInstanceName": "original-db-instance-name", - "dbVersion": "MYSQL_V8028", - "backupType": "MANUAL", - "backupSize": 8299904, - "useBackupLock": true, - "failoverCount": 0, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 367916037, - "createdYmdt": "2023-07-10T15:44:44+09:00", - "updatedYmdt": "2023-07-10T15:46:07+09:00" - }, - "restorableBinLogs": [ - "mysql-bin.000001" - ] - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ``` @@ -1251,39 +1871,25 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info --- -### 복원될 마지막 쿼리 조회 +### 고가용성 분리하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query +POST /v3.0/db-instances/{dbInstanceId}/high-availability/split ``` -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|------|----|-----------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restoreType | Query | Enum | O | 복원 타입 종류

  • `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
  • `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
| - -#### restoreType이 `TIMESTAMP`인 경우 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-------|----------|----|-------------------------------------------| -| restoreYmdt | Query | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +#### 요청 -#### restoreType이 `BINLOG`인 경우 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------|-------|--------|----|--------------------| -| backupId | Query | UUID | O | 복원에 사용할 백업의 식별자 | -| binLogFileName | Query | String | O | 복원에 사용할 바이너리 로그 이름 | -| binLogPosition | Query | Number | O | 복원에 사용할 바이너리 로그 위치 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|----------|--------------------------------------| -| executedYmdt | Body | DateTime | 쿼리 수행 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| lastQuery | Body | String | 마지막 수행 쿼리 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1295,8 +1901,7 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query "resultMessage": "SUCCESS", "isSuccessful": true }, - "executedYmdt": "2023-03-17T14:02:29+09:00", - "lastQuery": "INSERT INTO `test`.`test`SET @1='0123'" + "jobId": "jobId-example" } ``` @@ -1305,303 +1910,189 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query --- -### 복원 +### 로그 파일 목록 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/restore +GET /v3.0/db-instances/{dbInstanceId}/log-files ``` -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restore | Body | Object | O | 복원 정보 객체 | -| restore.restoreType | Body | Enum | O | 복원 타입 종류

  • `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
  • `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
  • `BACKUP`: 기존에 생성한 백업을 이용한 스냅숏 복원 타입
| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
  • 최솟값: `3306`
  • 최댓값: `43306`
| -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
  • 기본값: `false`
| -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
  • 기본값: `3`
  • 최솟값: `1`
  • 최댓값: `600`
| -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
  • 기본값: `false`
| -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
  • 기본값: `false`
| -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
  • 예시: `kr-pub-a`
| -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
  • 최솟값: `20`
  • 최댓값: `2048`
| -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
  • 최솟값: `0`
  • 최댓값: `730`
| -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
  • 기본값: `1800`
  • 최솟값: `0`
  • 최댓값: `21600`
| -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
  • 기본값: `0`
  • 최솟값: `0`
  • 최댓값: `10`
| -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
  • `KR1`: 한국(판교)
  • `KR2`: 한국(평촌)
  • `JP1`: 일본(도쿄)
| -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
  • 기본값: `true`
| -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
  • 예시: `00:00:00`
| -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
  • `HALF_AN_HOUR`: 30분
  • `ONE_HOUR`: 1시간
  • `ONE_HOUR_AND_HALF`: 1시간 30분
  • `TWO_HOURS`: 2시간
  • `TWO_HOURS_AND_HALF`: 2시간 30분
  • `THREE_HOURS`: 3시간
| -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | +이 API는 요청 본문을 요구하지 않습니다. -#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|----------|----|------------------------------------------------------------------------------------------------| -| restore.restoreYmdt | Body | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD)
복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능하다. | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| logFiles | Body | Array | 로그 파일 목록 | +| logFiles.logFileName | Body | String | 로그 파일 이름 | +| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- ERROR
- BINLOG
- GENERAL
- SLOW_QUERY
- AUDIT
- BACKUP | +| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | +| logFiles.createdYmdt | Body | DateTime | 생성 일시 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "TIMESTAMP", - "restoreYmdt": "2023-07-10T15:44:44+09:00" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "logFiles": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) +--- + +### 로그 파일 내보내기 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------------|------|--------|----|--------------------| -| restore.backupId | Body | UUID | O | 복원에 사용할 백업의 식별자 | -| restore.binLog | Body | Object | O | 바이너리 로그 정보 객체 | -| restore.binLog.binLogFileName | Body | String | O | 복원에 사용할 바이너리 로그 이름 | -| restore.binLog.binLogPosition | Body | Number | O | 복원에 사용할 바이너리 로그 위치 | +```http +POST /v3.0/db-instances/{dbInstanceId}/log-files/export +``` -* 바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. +#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| logFileNames | Body | Array | O | 로그 파일 이름 목록 | +| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BINLOG", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36", - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 1234567 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "logFileNames": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

-#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|------|------------------------------|-----------------| -| restore.backupId | Body | UUID | O(restoreType이 `BACKUP`인 경우) | 복원에 사용할 백업의 식별자 | - +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BACKUP", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

+--- + +### 네트워크 정보 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/network-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | +| subnet | Body | Object | 서브넷 객체 | +| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnet.subnetCidr | Body | String | 서브넷의 CIDR | +| endPoints | Body | Array | 접속 정보 목록 | +| endPoints.domain | Body | String | 도메인 | +| endPoints.ipAddress | Body | String | IP 주소 | +| endPoints.endPointType | Body | String | 접속 정보 타입 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "availabilityZone": "availabilityZone-example", + "subnet": { + "subnetId": "subnetId-example", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example" + }, + "endPoints": [ + { + "endPointType": "endPointType-example" + } + ] +} +``` +

+
--- -### 오브젝트 스토리지로부터 복원 +### 네트워크 정보 수정하기 ```http -POST /v3.0/db-instances/restore-from-obs +PUT /v3.0/db-instances/{dbInstanceId}/network-info ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|----------------------------------------------------------------------------------------| -| restore | Body | Object | O | 복원 정보 객체 | -| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | -| restore.username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | -| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | -| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
  • 최솟값: `3306`
  • 최댓값: `43306`
| -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
  • 기본값: `false`
| -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
  • 기본값: `3`
  • 최솟값: `1`
  • 최댓값: `600`
| -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
  • 기본값: `false`
| -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
  • 기본값: `false`
| -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
  • 예시: `kr-pub-a`
| -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
  • 최솟값: `20`
  • 최댓값: `2048`
| -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
  • 최솟값: `0`
  • 최댓값: `730`
| -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
  • 기본값: `1800`
  • 최솟값: `0`
  • 최댓값: `21600`
| -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
  • 기본값: `0`
  • 최솟값: `0`
  • 최댓값: `10`
| -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
  • `KR1`: 한국(판교)
  • `KR2`: 한국(평촌)
  • `JP1`: 일본(도쿄)
| -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
  • 기본값: `true`
| -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
  • 예시: `00:00:00`
| -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
  • `HALF_AN_HOUR`: 30분
  • `ONE_HOUR`: 1시간
  • `ONE_HOUR_AND_HALF`: 1시간 30분
  • `TWO_HOURS`: 2시간
  • `TWO_HOURS_AND_HALF`: 2시간 30분
  • `THREE_HOURS`: 3시간
| - - +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbVersion": "MYSQL_V8028", - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "tenantId":"tenant-id", - "username":"username", - "password":"password", - "targetContainer":"targetContainer", - "objectPath":"objectPath" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "usePublicAccess": false } ``` @@ -1610,30 +2101,48 @@ POST /v3.0/db-instances/restore-from-obs #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +

예시 +

---- +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+--- -### DB 인스턴스 삭제 보호 설정 변경하기 +### DB 인스턴스 승격하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection +POST /v3.0/db-instances/{dbInstanceId}/promote ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1644,7 +2153,8 @@ PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ``` @@ -1653,137 +2163,203 @@ PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection --- -### 고가용성 수정하기 +### DB 인스턴스 복제하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/high-availability +POST /v3.0/db-instances/{dbInstanceId}/replicate ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|---------|----|------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부 | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | X | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | X | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | X | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | ---- - -### 고가용성 다시 시작하기 +

예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} ``` -#### 요청 +

+
-이 API는 요청 본문을 요구하지 않습니다. +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | -#### 응답 +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 고가용성 일시 중지하기 +### DB 인스턴스 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause +POST /v3.0/db-instances/{dbInstanceId}/restart ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | -### 고가용성 복구하기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair +```json +{ + "useOnlineFailover": false, + "executeBackup": false, + "waitReplicationDelay": false, + "useReadOnly": false +} ``` -#### 요청 +

+
-이 API는 요청 본문을 요구하지 않습니다. +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | -#### 응답 +
예시 +

-| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### 고가용성 분리하기 +### DB 인스턴스 복원 정보 조회 ```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/split +GET /v3.0/db-instances/{dbInstanceId}/restoration-info ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 데이터 스토리지 정보 보기 +### 복원될 마지막 쿼리 조회 ```http -GET /v3.0/db-instances/{dbInstanceId}/storage-info +GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------|------|--------|--------------------------------------------------------------------------------------| -| storageType | Body | Enum | 데이터 스토리지 타입 | -| storageSize | Body | Number | 데이터 스토리지 크기(GB) | -| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- `DETACHED`: 부착되지 않음
- `ATTACHED`: 부착됨
- `DELETED`: 삭제됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| executedYmdt | Body | DateTime | 쿼리 수행 일시 | +| lastQuery | Body | String | 마지막 수행 쿼리 |
예시

@@ -1795,66 +2371,142 @@ GET /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "General SSD", - "storageSize": 20, - "storageStatus": "ATTACHED" + "executedYmdt": "2023-12-31T15:00:00+09:00", + "lastQuery": "lastQuery-example" } ```

- --- -### 데이터 스토리지 정보 수정하기 +### DB 인스턴스 복원 ```http -PUT /v3.0/db-instances/{dbInstanceId}/storage-info +POST /v3.0/db-instances/{dbInstanceId}/restore ``` -#### 요청 +#### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: 현재값
- 최댓값: `2048` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| imageId | Body | UUID | X | 이미지의 식별자 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.restoreType | Body | Enum | O | 복원 타입
- TIMESTAMP: `복원 가능한 시간 이내의 시간을 이용한 시점 복원`
- BINLOG: `복원 가능한 바이너리 로그 위치를 이용한 시점 복원`
- BACKUP: `기존에 생성한 백업을 이용한 스냅숏 복원` | +| restore.binLog.binLogFileName | Body | String | X | 복원에 사용할 바이너리 로그 이름 | +| restore.binLog.binLogPosition | Body | Object | X | 복원에 사용할 바이너리 로그 위치 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -#### 응답 +#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.restoreYmdt | Body | DateTime | X | DB 인스턴스 복원 일시 | ---- +복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. -### 백업 정보 보기 +#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) -```http -GET /v3.0/db-instances/{dbInstanceId}/backup-info -``` +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | +| restore.binLog | Body | Object | X | 복원에 사용할 바이너리 로그 정보 객체 | -#### 요청 +바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. -이 API는 요청 본문을 요구하지 않습니다. +#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "useHighAvailability": false, + "imageId": "550e8400-e29b-41d4-a716-446655440000", + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "restoreType": "TIMESTAMP", + "binLog": { + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + } + } + }, + "useDefaultNotification": false, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|---------|----------------| -| backupPeriod | Body | Number | 백업 보관 기간(일) | -| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | -| backupRetryCount | Body | Number | 백업 재시도 횟수 | -| replicationRegion | Body | Enum | 백업 복제 리전 | -| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | -| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1866,100 +2518,73 @@ GET /v3.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "backupPeriod": 1, - "ftwrlWaitTimeout": 1800, - "backupRetryCount": 0, - "replicationRegion": null, - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] + "jobId": "jobId-example" } ```

- --- -### 백업 정보 수정하기 +### DB 인스턴스 시작하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/backup-info +POST /v3.0/db-instances/{dbInstanceId}/start ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------------------------|------|---------|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "backupPeriod": 5, - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndBgnTime": "01:00:00", - "backupWndDuration": "TWO_HOURS" - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 네트워크 정보 보기 +### DB 인스턴스 정지하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/network-info +POST /v3.0/db-instances/{dbInstanceId}/stop ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------------------------------------------------------------------------------------------------------------------------------| -| availabilityZone | Body | Enum | DB 인스턴스를 생성할 가용성 영역 | -| subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | UUID | 서브넷의 식별자 | -| subnet.subnetName | Body | UUID | 서브넷을 식별할 수 있는 이름 | -| subnet.subnetCidr | Body | UUID | 서브넷의 CIDR | -| endPoints | Body | Array | 접속 정보 목록 | -| endPoints.domain | Body | String | 도메인 | -| endPoints.ipAddress | Body | String | IP 주소 | -| endPoints.endPointType | Body | Enum | 접속 정보 타입
-`EXTERNAL`: 외부 접속 도메인
-`INTERNAL`: 내부 접속 도메인
-`PUBLIC`: (Deprecated) 외부 접속 도메인
-`PRIVATE`: (Deprecated) 내부 접속 도메인 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1971,19 +2596,7 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "kr-pub-a", - "subnet": { - "subnetId": "bd453789-34ae-416c-9f78-05b9e43a46be", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/16" - }, - "endPoints": [ - { - "domain": "ea548a78-d85f-43b4-8ddf-c88d999b9905.internal.kr1.mysql.rds.nhncloudservice.com", - "ipAddress": "192.168.0.2", - "endPointType": "INTERNAL" - } - ] + "jobId": "jobId-example" } ``` @@ -1992,55 +2605,27 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info --- -### 네트워크 정보 수정하기 - -```http -PUT /v3.0/db-instances/{dbInstanceId}/network-info -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 목록 보기 +### 스토리지 정보 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/db-users +GET /v3.0/db-instances/{dbInstanceId}/storage-info ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|-----------------------------------------------------------------------------------------------------------------------------| -| dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | -| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | -| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | -| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `UPDATING`: 수정 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbUsers.authenticationPlugin | Body | Enum | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| dbUsers.tlsOption | Body | Enum | TLS Option
- NONE
- SSL
- X509 | -| dbUsers.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbUsers.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageType | Body | Enum | 데이터 스토리지 타입 | +| storageSize | Body | Number | 데이터 스토리지 크기(GB) | +| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- DELETED: `삭제됨`
- PENDING_DELETION: `삭제 유예됨`
- DELETION_RESERVED: `삭제 예약됨 (스냅샷 정리 대기)`
- DETACHED: `해제됨`
- ATTACHED: `할당됨` |

예시

@@ -2052,19 +2637,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbUsers": [ - { - "dbUserId": "4b3d530b-fd02-4d59-a620-83d019a67bbb", - "dbUserName": "db-user", - "host": "%", - "authorityType": "DDL", - "dbUserStatus": "STABLE", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE", - "createdYmdt": "2023-03-17T14:02:29+09:00", - "updatedYmdt": "2023-03-17T14:02:31+09:00" - } - ] + "storageType": "ENUM_VALUE", + "storageSize": 1, + "storageStatus": "DELETED" } ``` @@ -2073,38 +2648,25 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users --- -### DB 사용자 생성하기 +### 스토리지 정보 수정하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/db-users +PUT /v3.0/db-instances/{dbInstanceId}/storage-info ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|-------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserName | Body | String | O | DB 사용자 계정 이름
- 최소 길이: `1`
- 최대 길이: `32` | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| host | Body | String | O | DB 사용자 계정의 호스트명
- 예시: `1.1.1.%` | -| authorityType | Body | Enum | O | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | - -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 설정할 수 있습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최댓값: `2048` |

예시

```json { - "dbUserName": "db-user", - "dbPassword": "password", - "host": "1.1.1.%", - "authorityType": "CRUD", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE" + "storageSize": 1 } ``` @@ -2113,99 +2675,50 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 수정하기 - -```http -PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|-------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | -| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| authorityType | Body | Enum | X | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | - -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 수정할 수 있습니다. -> `authenticationPlugin`의 값은 `dbPassword`와 동시에 수정을 해야 합니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

```json { - "authorityType": "DDL" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 삭제하기 - -```http -DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +## DB 인스턴스 그룹 -### DB 스키마 목록 보기 +### DB 인스턴스 그룹 목록 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/db-schemas +GET /v3.0/db-instance-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|------------------------------------------------------------------------------------------------------| -| dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | -| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | -| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbSchemas.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2217,12 +2730,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSchemas": [ + "dbInstanceGroups": [ { - "dbSchemaId": "7c9a94b8-86c1-435d-8af2-82a5e9d53fd4", - "dbSchemaName": "schema", - "dbSchemaStatus": "STABLE", - "createdYmdt": "2023-03-20T13:37:45+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2233,75 +2743,81 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas --- -### DB 스키마 생성하기 +### DB 인스턴스 그룹 상세 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/db-schemas +GET /v3.0/db-instance-groups/{dbInstanceGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaName | Body | String | O | DB 스키마 이름 | +이 API는 요청 본문을 요구하지 않습니다. -#### 응답 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +#### 응답 ---- +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | -### DB 스키마 삭제하기 +

예시 +

-```http -DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} ``` -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 로그 파일 목록 보기 +## DB 인스턴스 사양 + +### DB 인스턴스 사양 목록 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/log-files +GET /v3.0/db-flavors ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|-------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileTypes | Query | Array | X | 로그 파일 타입 종류 목록
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| logFiles | Body | Array | 로그 파일 목록 | -| logFiles.logFileName | Body | String | 로그 파일 이름 | -| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | -| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | -| logFiles.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -2313,12 +2829,9 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files "resultMessage": "SUCCESS", "isSuccessful": true }, - "logFiles": [ + "dbFlavors": [ { - "logFileName": "xtra_full.log-20230317", - "logFileType": "BACKUP", - "logFileSize": 4096, - "createdYmdt": "2023-03-17T14:02:29+09:00" + "vcpus": 1 } ] } @@ -2329,95 +2842,65 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files --- -### 로그 파일 내보내기 +## storages + +### 스토리지 목록 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/log-files/export +GET /v3.0/storages ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|--------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileNames | Body | Array | O | 로그 파일 이름 목록
- 최소 크기: `1` | -| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storages | Body | Array | 스토리지 목록 |

예시

```json { - "logFileNames": ["xtra_full.log-20230317"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "logs/backup" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storages": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +## 네트워크 -### 백업 목록 조회 +### 서브넷 목록 보기 ```http -GET /v3.0/backups +GET /v3.0/network/subnets ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|--------|----|----------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| backupType | Query | Enum | X | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동
- 기본값: 전체 | -| dbInstanceId | Query | UUID | X | 원본 DB 인스턴스의 식별자 | -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|-----------------------------------| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | UUID | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태 | -| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형 | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |
예시

@@ -2429,19 +2912,9 @@ GET /v3.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "backups": [ + "subnets": [ { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupSize": 4996786, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" + "availableIpCount": 1 } ] } @@ -2452,168 +2925,118 @@ GET /v3.0/backups --- -### 백업 내보내기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v3.0/backups/{backupId}/export +GET /v3.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storageTypes": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - -> [주의] -> 수동 백업의 경우 백업이 수행된 DB 인스턴스가 존재하지 않으면, 백업을 오브젝트 스토리지로 내보낼 수 없습니다. - --- -### 백업 복원하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v3.0/backups/{backupId}/restore +GET /v3.0/metric-statistics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Integer | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | - -
예시 -

- -```json - -{ - "dbInstanceName": "db-instance-restore", - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbPort": 10000, - "parameterGroupId": "132d383c-38e3-468a-a826-5e9a8fff15d0", - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 백업 삭제하기 +### Metric 목록 보기 ```http -DELETE /v3.0/backups/{backupId} +GET /v3.0/metrics ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "metrics": [ + { + "unit": "unit-example" + } + ] +} +``` + +

+
--- -## DB 보안 그룹 +## 백업 -### DB 보안 그룹 진행 상태 +### 백업 상태 -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | -### DB 보안 그룹 목록 보기 +### 백업 목록 조회 ```http -GET /v3.0/db-security-groups +GET /v3.0/backups ``` #### 요청 @@ -2622,15 +3045,20 @@ GET /v3.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-----------------------------------| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2642,14 +3070,10 @@ GET /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "totalCounts": 1, + "backups": [ { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2022-02-19T19:18:13+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2660,42 +3084,25 @@ GET /v3.0/db-security-groups --- -### DB 보안 그룹 상세 보기 +### 백업 삭제하기 ```http -GET /v3.0/db-security-groups/{dbSecurityGroupId} +DELETE /v3.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|----------|--------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다.
- `PORT`: 지정된 포트값으로 설정됩니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | 허용할 트래픽의 원격 소스 | -| rules.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| rules.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2707,30 +3114,7 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "rules": [ - { - "ruleId": "17c88ef6-95f1-4678-84f9-fee1b22e250d", - "description": "description", - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } - ], - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } + "jobId": "jobId-example" } ``` @@ -2739,50 +3123,33 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 생성하기 +### 백업 내보내기 ```http -POST /v3.0/db-security-groups +POST /v3.0/backups/{backupId}/export ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "rules": [ - { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0" - } - ] + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -2791,33 +3158,105 @@ POST /v3.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|------|---------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### DB 보안 그룹 수정하기 +### 백업 복원하기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId} +POST /v3.0/backups/{backupId}/restore ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|-----------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` |
예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } } ``` @@ -2826,7 +3265,9 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2837,33 +3278,37 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ```

- --- -### DB 보안 그룹 삭제하기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2874,7 +3319,12 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "userGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -2883,42 +3333,28 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 규칙 생성하기 +### 사용자 그룹 생성하기 ```http -POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v3.0/user-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT", - "minPort": 10000, - "maxPort": 10000 - }, - "cidr": "0.0.0.0/0" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -2927,178 +3363,74 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 보안 그룹 규칙 수정하기 - -```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleId | URL | UUID | O | DB 보안 그룹 규칙의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "DB_PORT" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "0.0.0.0/0" + "userGroupId": "userGroupId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 보안 그룹 규칙 삭제하기 - -```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|-------|----|---------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleIds | Query | Array | O | DB 보안 그룹 규칙의 식별자 목록 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 +### 사용자 그룹 삭제하기 ```http -GET /v3.0/parameter-groups +DELETE /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------|-------|------|----|----------| -| dbVersion | Query | Enum | X | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-------------------------------------------------------------------| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "parameterGroups": [ - { - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "createdYmdt": "2023-02-31T15:28:17+09:00", - "updatedYmdt": "2023-02-31T15:28:17+09:00" - } - ] -} -``` - -

-
- +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 상세 보기 +### 사용자 그룹 상세 보기 ```http -GET /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|--------------------------------------------------------------------------------------------------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | UUID | 파라미터 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- `CLIENT`: client
- `MYSQL`: mysql
- `MYSQLD`: mysqld | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- `VARIABLE`: 언제든 수정 가능
- `CONSTANT`: 수정 불가능
- `INIT_VARIABLE`: DB 인스턴스 생성 시에만 수정 가능 | -| parameters.applyType | Body | Enum | 적용 타입
- `SESSION`: 세션 적용
- `FILE`: 설정 파일 적용(재시작 필요)
- `BOTH`: 전체(재시작 필요) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3110,56 +3442,47 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "parameters": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "parameterId": "fa040b5e-f29f-46de-8f0d-bba4cb82887a", - "parameterFileGroup": "client", - "parameterName": "socket", - "fileParameterName": "socket", - "value": "/home/tcrds/db/mysql/tmp/mysql.sock", - "defaultValue": "/home/tcrds/db/mysql/tmp/mysql.sock", - "allowedValue": "", - "updateType": "CONSTANT", - "applyType": "BOTH" + "memberId": "memberId-example" } ], - "createdYmdt": "2023-03-13T11:02:28+09:00", - "updatedYmdt": "2023-03-13T11:02:28+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

- --- -### 파라미터 그룹 생성하기 +### 사용자 그룹 수정하기 ```http -POST /v3.0/parameter-groups +PUT /v3.0/user-groups/{userGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |
예시

```json { - "parameterGroupName": "parameter-group", - "dbVersion": "MYSQL_V8028" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -3168,67 +3491,86 @@ POST /v3.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 복사하기 +## 알림 그룹 + +### 알림 그룹 목록 보기 ```http -POST /v3.0/parameter-groups/{parameterGroupId}/copy +GET /v3.0/notification-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "parameterGroupName": "parameter-group-copy", - "description": "copy" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "notificationGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | - --- -### 파라미터 그룹 수정하기 +### 알림 그룹 생성하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId} +POST /v3.0/notification-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |
예시

```json { - "parameterGroupName": "parameter-group" + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], + "userGroupIds": [] } ``` @@ -3237,7 +3579,9 @@ PUT /v3.0/parameter-groups/{parameterGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3248,7 +3592,8 @@ PUT /v3.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3257,75 +3602,57 @@ PUT /v3.0/parameter-groups/{parameterGroupId} --- -### 파라미터 수정하기 +### 알림 그룹 삭제하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/parameters +DELETE /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------|------|--------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | - -

예시 -

- -```json -{ - "modifiedParameters": [ - { - "parameterId": "3abac558-7274-44e1-9f4a-f100f53f67ba", - "value": "0" - } - ] -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } -} -``` - -

-
- --- -### 파라미터 그룹 재설정하기 +### 알림 그룹 상세 보기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/reset +GET /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3336,7 +3663,24 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/reset "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ + { + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3345,48 +3689,66 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/reset --- -### 파라미터 그룹 삭제하기 +### 알림 그룹 수정하기 ```http -DELETE /v3.0/parameter-groups/{parameterGroupId} +PUT /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 사용자 그룹 +## 이벤트 -### 사용자 그룹 목록 보기 +### 이벤트 카테고리 + +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. + +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | + +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v3.0/user-groups +GET /v3.0/event-codes ``` #### 요청 @@ -3395,13 +3757,11 @@ GET /v3.0/user-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|-----------------------------------| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |
예시

@@ -3413,12 +3773,9 @@ GET /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "eventCodes": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "eventCategoryType": "ALL" } ] } @@ -3429,31 +3786,30 @@ GET /v3.0/user-groups --- -### 사용자 그룹 상세 보기 +### 이벤트 목록 조회 ```http -GET /v3.0/user-groups/{userGroupId} +GET /v3.0/events ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|----------|-----------------------------------------------------------------------------------------------------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
`ENTIRE`: 프로젝트 멤버 전체를 포함하는 사용자 그룹
`INDIVIDUAL_MEMBER`: 특정 프로젝트 멤버를 포함하는 사용자 그룹 | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

@@ -3465,16 +3821,12 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "userGroupTypeCode": "INDIVIDUAL_MEMBER", - "members": [ + "totalCounts": 1, + "events": [ { - "memberId": "1321e759-2ef3-4b85-9921-b13e918b24b5" + "eventYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + ] } ``` @@ -3483,75 +3835,99 @@ GET /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 생성하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v3.0/user-groups +GET /v3.0/event-subscriptions ``` -#### 요청 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|-------------------------------------------------------------| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록
`selectAllYN`이 true인 경우 해당 필드 값은 무시됨 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |

예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } ] } ``` -```json -{ - "userGroupName": "dev-team", - "selectAllYN":true -} -``` -

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------------|------|------|-------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | - --- -### 사용자 그룹 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v3.0/user-groups/{userGroupId} +POST /v3.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|----------------------------------------------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | -| userGroupName | Body | String | X | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5", - "f9064b09-2b15-442e-a4b0-3a5a2754555e" - ] + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ``` @@ -3560,7 +3936,9 @@ PUT /v3.0/user-groups/{userGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -3571,7 +3949,8 @@ PUT /v3.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -3580,64 +3959,121 @@ PUT /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 삭제하기 +### 이벤트 구독 삭제하기 ```http -DELETE /v3.0/user-groups/{userGroupId} +DELETE /v3.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v3.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 알림 그룹 +## 작업 정보 -### 알림 그룹 목록 보기 +### 작업 상태 + +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 ```http -GET /v3.0/notification-groups +GET /v3.0/jobs/{jobId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------------|------|----------|-----------------------------------| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3649,17 +4085,15 @@ GET /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ { - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "resourceId": "resourceId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3668,37 +4102,30 @@ GET /v3.0/notification-groups --- -### 알림 그룹 상세 보기 +## 파라미터 그룹 + +### 파라미터 그룹 목록 보기 ```http -GET /v3.0/notification-groups/{notificationGroupId} +GET /v3.0/parameter-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------------|------|----------|-----------------------------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3710,25 +4137,11 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "dbInstances": [ - { - "dbInstanceId": "ed5cb985-526f-4c54-9ae0-40288593de65", - "dbInstanceName": "database" - } - ], - "userGroups": [ + "parameterGroups": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + ] } ``` @@ -3737,37 +4150,28 @@ GET /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v3.0/notification-groups +POST /v3.0/parameter-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------------| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "notificationGroupName": "dev-team-noti", - "notifyEmail": false, - "isEnable": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65" - ], - "userGroupIds": [ - "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0" - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -3776,49 +4180,84 @@ POST /v3.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|------|------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "parameterGroupId": "parameterGroupId-example" +} +``` + +

+
--- -### 알림 그룹 수정하기 +### 파라미터 그룹 삭제하기 ```http -PUT /v3.0/notification-groups/{notificationGroupId} +DELETE /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부 | -| notifySms | Body | Boolean | X | SMS 알림 여부 | -| isEnabled | Body | Boolean | X | 활성화 여부 | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +이 API는 요청 본문을 요구하지 않습니다. -
예시 -

+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -```json -{ - "notifyEmail": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65", - "d51b7da0-682f-47ff-b588-b739f6adc740" - ] -} +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 파라미터 그룹 상세 보기 + +```http +GET /v3.0/parameter-groups/{parameterGroupId} ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3829,7 +4268,19 @@ PUT /v3.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ + { + "applyType": "BOTH" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3838,61 +4289,71 @@ PUT /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 수정하기 ```http -DELETE /v3.0/notification-groups/{notificationGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 모니터링 +이 API는 응답 본문을 반환하지 않습니다. -### Metric 목록 보기 +--- + +### 파라미터 그룹 복사하기 ```http -GET /v3.0/metrics +POST /v3.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|--------|-----------| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | Enum | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -3904,12 +4365,7 @@ GET /v3.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "measureName": "CPU_USAGE", - "unit": "%" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3918,56 +4374,29 @@ GET /v3.0/metrics --- -### 통계 정보 조회 +### 파라미터 수정하기 ```http -GET /v3.0/metric-statistics +PUT /v3.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|----------|----|-----------------------------------| -| dbInstanceId | Query | UUID | O | DB 인스턴스의 식별자 | -| measureNames | Query | Array | O | 조회 지표 목록
- 최소 크기: `1` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| interval | Query | Number | X | 조회 간격 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|-----------|----------| -| metricStatistics | Body | Array | 통계 정보 목록 | -| metricStatistics.measureName | Body | Enum | 측정 항목 유형 | -| metricStatistics.unit | Body | String | 측정값 단위 | -| metricStatistics.values | Body | Array | 측정값 목록 | -| metricStatistics.values.timestamp | Body | Timestamp | 측정 시간 | -| metricStatistics.values.value | Body | Object | 측정값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "metricStatistics": [ + "modifiedParameters": [ { - "measureName": "MYSQL_STATUS", - "unit": "", - "values": [ - [ - 1679298540, - "1" - ], - [ - 1679298600, - "1" - ], - [ - 1679298660, - "1" - ] - ] + "value": "value-example" } ] } @@ -3976,58 +4405,53 @@ GET /v3.0/metric-statistics

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 +### 파라미터 그룹 재설정하기 -### 이벤트 카테고리 +```http +PUT /v3.0/parameter-groups/{parameterGroupId}/reset +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 이벤트 목록 조회 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 프로젝트 정보 + +### 프로젝트 멤버 목록 보기 ```http -GET /v3.0/events +GET /v3.0/project/members ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| eventCategoryType | Query | Enum | O | 조회할 이벤트 카테고리 유형
- `ALL`: 전체
- `INSTANCE`: DB 인스턴스
- `BACKUP`: 백업
- `DB_SECURITY_GROUP`: DB 보안 그룹
- `TENANT`: 테넌트 | -| sourceId | Query | String | X | 이벤트가 발생한 대상 리소스의 식별자 | -| keyword | Query | String | X | 이벤트 메시지에 포함된 문자열 검색어 | -| ascendingOrder | Query | Enum | X | 이벤트 메시지 정렬 순서
- `ASC`: 오름차순
- `DESC`: 내림차순
- 기본값: `DESC` | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|---------------------------------------| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메시지 목록 | -| events.messages.langCode | Body | String | 언어 코드 | -| events.messages.message | Body | String | 이벤트 메시지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -4039,32 +4463,9 @@ GET /v3.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 28, - "events": [ + "members": [ { - "eventCategoryType": "INSTANCE", - "eventCode": "INSTC_02_01", - "sourceId": "76f00947-356e-4a20-8922-428368cc45ed", - "sourceName": "db-instance", - "messages": [ - { - "langCode": "EN", - "message": "DB instance started" - }, - { - "langCode": "JA", - "message": "DBインスタンスの起動" - }, - { - "langCode": "KO", - "message": "DB 인스턴스 시작" - }, - { - "langCode": "ZH", - "message": "DB instance started" - } - ], - "eventYmdt": "2023-03-20T16:31:59+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -4075,10 +4476,10 @@ GET /v3.0/events --- -### 구독 가능한 이벤트 코드 목록 보기 +### 리전 목록 보기 ```http -GET /v3.0/event-codes +GET /v3.0/project/regions ``` #### 요청 @@ -4087,11 +4488,11 @@ GET /v3.0/event-codes #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|-------|-------------| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

@@ -4103,10 +4504,9 @@ GET /v3.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "regions": [ { - "eventCode": "INSTC_05_01", - "eventCategoryType": "INSTANCE" + "isEnabled": false } ] } @@ -4116,3 +4516,4 @@ GET /v3.0/event-codes

--- + diff --git a/ko/api-guide-v3.0-ninc.md b/ko/api-guide-v3.0-ninc.md index 96d8c42d..a13ddb7c 100644 --- a/ko/api-guide-v3.0-ninc.md +++ b/ko/api-guide-v3.0-ninc.md @@ -1,35 +1,32 @@ ## Database > RDS for MySQL > API 가이드 -| 리전 | 엔드포인트 | -|-----------|-----------------------------------------------| -| 한국(판교) 리전 | https://kr4-rds-mysql-api.ninc.go.kr | +## RDS for MySQL API 공통 정보 -## 인증 및 권한 +### 인증 및 권한 -API를 사용하려면 인증에 필요한 `User Access Key ID`와 `Secret Access Key`가 필요합니다. 콘솔 우측 상단의 계정에 마우스 포인터를 올리면 표시되는 드롭다운 메뉴에서 API 보안 설정을 선택해 생성할 수 있습니다. -생성된 Key는 Appkey와 함께 요청 Header에 포함해야 합니다. +RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. +발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------|--------|--------|----|-------------------------------------------------------------| -| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-TC-AUTHENTICATION-ID | Header | String | O | API 보안 설정 메뉴의 User Access Key ID | -| X-TC-AUTHENTICATION-SECRET | Header | String | O | API 보안 설정 메뉴의 Secret Access Key | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | +| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | -또한 프로젝트 멤버 역할에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER`로 구분하여 권한을 부여할 수 있습니다. +또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. -* `RDS for MySQL ADMIN` 권한은 모든 기능을 사용 가능합니다. -* `RDS for MySQL VIEWER` 권한은 정보를 조회하는 기능만 사용 가능합니다. +* `RDS for MySQL ADMIN` 역할은 API 실행에 필요한 모든 권한이 부여됩니다. +* `RDS for MySQL VIEWER` 역할은 정보를 조회하는 권한만 부여됩니다. * DB 인스턴스를 생성, 수정, 삭제하거나, DB 인스턴스를 대상으로 하는 어떠한 기능도 사용할 수 없습니다. - * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용 가능합니다. + * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용할 수 있습니다. API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같은 오류가 발생합니다. -| resultCode | resultMessage | 설명 | -|------------|---------------|-------------| -| 80401 | Unauthorized | 인증에 실패했습니다. | -| 80403 | Forbidden | 권한이 없습니다. | +| resultCode | resultMessage | 설명 | +|------------|---------------|-----| +| 80401 | Unauthorized | 인증에 실패했습니다. | +| 80403 | Forbidden | 권한이 없습니다. | -## 응답 공통 정보 +### 응답 공통 정보 모든 API 요청에 '200 OK'로 응답합니다. 자세한 응답 결과는 응답 본문의 헤더를 참고합니다. @@ -45,47 +42,66 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 ``` #### 필드 -| 이름 | 형식 | 설명 | -|---------------|---------|-----------------------------------------| -| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | -| resultMessage | String | 결과 메시지 | -| isSuccessful | Boolean | 성공 여부 | - - -## DB 엔진 유형 - -| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 정보 | -|--------------|----------|-----------------|--------| -| MYSQL\_V5633 | X | X | NATIVE | -| MYSQL\_V5715 | O | O | NATIVE | -| MYSQL\_V5719 | O | O | NATIVE | -| MYSQL\_V5726 | O | O | NATIVE | -| MYSQL\_V5731 | X | X | NATIVE | -| MYSQL\_V5733 | O | X | NATIVE, SHA256 | -| MYSQL\_V5737 | O | O | NATIVE, SHA256 | -| MYSQL\_V8018 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8023 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8028 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8032 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8033 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8034 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8405 | O | O | CACHING_SHA2 | +| 이름 | 형식 | 설명 | +|-----|-----|-----| +| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | +| resultMessage | String | 결과 메시지 | +| isSuccessful | Boolean | 성공 여부 | + +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(대구) 리전 | https://ninc-kr4-rds-proxy.cloud.toastoven.net | + +### DB 엔진 유형 + +| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | +|------------|----------|------------------|------------| +| MYSQL_V5633 | X | X | NATIVE | +| MYSQL_V5715 | O | O | NATIVE | +| MYSQL_V5719 | O | O | NATIVE | +| MYSQL_V5726 | O | O | NATIVE | +| MYSQL_V5731 | X | X | NATIVE | +| MYSQL_V5733 | O | X | NATIVE, SHA256 | +| MYSQL_V5737 | O | O | NATIVE, SHA256 | +| MYSQL_V8018 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8023 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8028 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8032 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8033 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8034 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8405 | O | O | CACHING_SHA2 | +| MYSQL_V8406 | O | O | CACHING_SHA2 | +| MYSQL_V8407 | O | O | CACHING_SHA2 | +| MYSQL_V8408 | O | O | CACHING_SHA2 | * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## 프로젝트 정보 +## DB 보안 그룹 -### 리전 목록 보기 +### DB 보안 그룹 진행 상태 + +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | + +### DB 보안 그룹 목록 보기 ```http -GET /v3.0/project/regions +GET /v3.0/db-security-groups ``` #### 요청 @@ -94,11 +110,15 @@ GET /v3.0/project/regions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------|------|---------|----------------------------------------------------------------------------| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -110,63 +130,51 @@ GET /v3.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ - { - "regionCode": "KR1", - "isEnabled": true - }, - { - "regionCode": "KR2", - "isEnabled": true - }, + "dbSecurityGroups": [ { - "regionCode": "JP1", - "isEnabled": true + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } ``` +

--- -### 프로젝트 멤버 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v3.0/project/members +POST /v3.0/db-security-groups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|--------|-----------------| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ { - "memberId": "1b1d3627-507a-49ea-8cb7-c86dfa9caa58", - "memberName": "홍길동", - "emailAddress": "gildong.hong@nhn.com", - "phoneNumber": "+821012345678" + "description": "description-example" } ] } @@ -175,29 +183,11 @@ GET /v3.0/project/members

---- - -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 - -```http -GET /v3.0/db-flavors -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -209,14 +199,7 @@ GET /v3.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbFlavorName": "m2.c1m2", - "ram": 2048, - "vcpus": 1 - } - ] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -225,76 +208,63 @@ GET /v3.0/db-flavors --- -## 네트워크 - -### 서브넷 목록 보기 +### DB 보안 그룹 삭제하기 ```http -GET /v3.0/network/subnets +DELETE /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|---------|------------------| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | UUID | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | - -

예시 -

+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "subnets": [ - { - "subnetId": "1b2a9b23-0725-4b92-8c78-35db66b8ad9f", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/24", - "usingGateway": true, - "availableIpCount": 240 - } - ] -} -``` +#### 응답 -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -## DB 엔진 - -### DB 엔진 목록 보기 +### DB 보안 그룹 상세 보기 ```http -GET /v3.0/db-versions +GET /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|---------|-----------------------| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroup | Body | Object | DB 보안 그룹 | +| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | +| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | +| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | +| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | +| dbSecurityGroup.rules.cidr | Body | String | CIDR | +| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | +| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -306,13 +276,19 @@ GET /v3.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ - { - "dbVersion": "MYSQL_V8028", - "dbVersionName": "MySQL 8.0.28", - "restorableFromObs": true - } - ] + "dbSecurityGroup": { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -321,61 +297,59 @@ GET /v3.0/db-versions --- -## 데이터 스토리지 - -### 데이터 스토리지 타입 목록 보기 +### DB 보안 그룹 수정하기 ```http -GET /v3.0/storage-types +PUT /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|-------|----------------| -| storageTypes | Body | Array | 데이터 스토리지 타입 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "storageTypes": [ - "General SSD", - "General HDD" - ] + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 데이터 스토리지 목록 보기 +### DB 보안 그룹 규칙 삭제하기 ```http -GET /v3.0/storages +DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------|------|-------|-------------| -| storages | Body | Array | 데이터 스토리지 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -387,10 +361,7 @@ GET /v3.0/storages "resultMessage": "SUCCESS", "isSuccessful": true }, - "storages": [ - "General SSD", - "General HDD" - ] + "jobId": "jobId-example" } ``` @@ -399,50 +370,51 @@ GET /v3.0/storages --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### DB 보안 그룹 규칙 생성하기 ```http -GET /v3.0/jobs/{jobId} +POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | + +

예시 +

+ +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------|-----|------|----|---------| -| jobId | URL | UUID | O | 작업의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------|------|----------|-----------------------------------| -| jobId | Body | UUID | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태 | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | Enum | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | UUID | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -454,16 +426,7 @@ GET /v3.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "0ddb042c-5af6-43fb-a914-f4dd0540eb7c", - "jobStatus": "RUNNING", - "resourceRelations": [ - { - "resourceType": "DB_INSTANCE", - "resourceId": "56b39dcf-65eb-47ec-9d4f-09f160ba2266" - } - ], - "createdYmdt": "2023-02-22T20:47:12+09:00", - "updatedYmdt": "2023-02-22T20:49:46+09:00" + "jobId": "jobId-example" } ``` @@ -472,27 +435,52 @@ GET /v3.0/jobs/{jobId} --- -## DB 인스턴스 그룹 - -### DB 인스턴스 그룹 목록 보기 +### DB 보안 그룹 규칙 수정하기 ```http -GET /v3.0/db-instance-groups +PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | + +

예시 +

+ +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------|------|----------|--------------------------------------------------------------------------| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -504,14 +492,7 @@ GET /v3.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ - { - "dbInstanceGroupId": "05de0746-89fd-49c8-94f9-9c5b1df97009", - "replicationType": "STANDALONE", - "createdYmdt": "2023-02-13T17:35:20+09:00", - "updatedYmdt": "2023-02-13T17:35:20+09:00" - } - ] + "jobId": "jobId-example" } ``` @@ -520,32 +501,26 @@ GET /v3.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v3.0/db-instance-groups/{dbInstanceGroupId} +GET /v3.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|-----------------| -| dbInstanceGroupId | URL | UUID | O | DB 인스턴스 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |

예시

@@ -557,17 +532,11 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "36617a8e-0df8-4b16-b6ea-6306019e95da", - "replicationType": "STANDALONE", - "dbInstances": [ + "dbVersions": [ { - "dbInstanceId": "6d2db0ef-fe9b-4ed4-97b1-d97fcb4cf1b8", - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE" + "restorableFromObs": false } - ], - "createdYmdt": "2023-03-03T17:38:14+09:00", - "updatedYmdt": "2023-03-03T17:38:14+09:00" + ] } ``` @@ -600,8 +569,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | `BACKING_UP` | 백업 중 | | `CANCELING` | 취소 중 | | `CREATING` | 생성 중 | -| `CREATING_SCHEMA` | DB 스키마 생성 중 | -| `CREATING_USER` | 사용자 생성 중 | +| `CREATING_SCHEMA` | DB 스키마 생성 중 | +| `CREATING_USER` | 사용자 생성 중 | | `DELETING` | 삭제 중 | | `DELETING_SCHEMA` | DB 스키마 삭제 중 | | `DELETING_USER` | 사용자 삭제 중 | @@ -620,8 +589,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | `STARTING` | 시작 중 | | `STOPPING` | 정지 중 | | `SYNCING_SCHEMA` | DB 스키마 동기화 중 | -| `SYNCING_USER` | 사용자 동기화 중 | -| `UPDATING_USER` | 사용자 수정 중 | +| `SYNCING_USER` | 사용자 동기화 중 | +| `UPDATING_USER` | 사용자 수정 중 | ### DB 인스턴스 목록 보기 @@ -635,20 +604,20 @@ GET /v3.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | -| dbInstances.dbPort | Body | Number | DB 포트 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태 | -| dbInstances.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstances.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstances | Body | Array | DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | +| dbInstances.dbPort | Body | Number | DB 포트 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbInstances.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstances.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -662,17 +631,7 @@ GET /v3.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "createdYmdt": "2023-01-23T12:03:13+09:00", - "updatedYmdt": "2023-02-02T17:20:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -683,44 +642,104 @@ GET /v3.0/db-instances --- -### DB 인스턴스 상세 보기 +### DB 인스턴스 생성하기 ```http -GET /v3.0/db-instances/{dbInstanceId} +POST /v3.0/db-instances ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| authenticationPlugin | Body | Enum | X | 인증 Plugin
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | TLS Option
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE", + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| dbPort | Body | Number | DB 포트 | -| dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| progressStatus | Body | Enum | DB 인스턴스의 현재 작업 진행 상태 | -| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | -| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | -| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | -| supportAuthenticationPlugin | Body | Boolean | 인증 플러그인 지원 여부 | -| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | -| needMigration | Body | Boolean | 마이그레이션 필요 여부 | -| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -732,26 +751,7 @@ GET /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "dbFlavorId": "e9ed4ef6-78d7-46fa-ace9-32481e97f3b7", - "parameterGroupId": "b03e8b13-de27-4d04-a488-ff5689589372", - "dbSecurityGroupIds": ["01908c35-d2c9-4852-baf0-17f06ec42c03"], - "notificationGroupIds": ["83a62a33-ddbf-4a04-8653-e54463d5b1ac"], - "useDeletionProtection": false, - "supportAuthenticationPlugin": true, - "needToApplyParameterGroup": false, - "needMigration": false, - "supportDbVersionUpgrade": true, - "createdYmdt": "2022-11-23T12:03:13+09:00", - "updatedYmdt": "2022-12-02T17:20:17+09:00" + "jobId": "jobId-example" } ``` @@ -760,131 +760,769 @@ GET /v3.0/db-instances/{dbInstanceId} --- -### DB 인스턴스 생성하기 +### 오브젝트 스토리지를 이용한 DB 인스턴스 복원 ```http -POST /v3.0/db-instances +POST /v3.0/db-instances/restore-from-obs ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|---------------------------------------------------------------------| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbUserName | Body | String | O | DB 사용자 계정명 | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| imageId | Body | UUID | X | 이미지의 식별자 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | +| restore.username | Body | String | O | NHN Cloud 계정 혹은 IAM 멤버 ID | +| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | +| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | +| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "dbVersion": "ENUM_VALUE", + "useHighAvailability": false, + "imageId": "550e8400-e29b-41d4-a716-446655440000", + "pingInterval": 3, "storage": { - "storageType": "General SSD", + "storageType": "ENUM_VALUE", "storageSize": 20 }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, "backup": { - "backupPeriod": 1, + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": true, "backupSchedules": [ { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR" + "backupWndDuration": "HALF_AN_HOUR" } ] - } -} -``` + }, + "restore": { + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" + }, + "useDefaultNotification": false, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 인스턴스 삭제하기 + +```http +DELETE /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 상세 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| dbPort | Body | Number | DB 포트 | +| dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | +| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | +| supportAuthenticationPlugin | Body | Boolean | 인증 plugin 지원 여부 | +| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | +| needMigration | Body | Boolean | 마이그레이션 필요 여부 | +| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "dbFlavorId": "dbFlavorId-example", + "parameterGroupId": "parameterGroupId-example", + "dbSecurityGroupIds": [], + "notificationGroupIds": [], + "useDeletionProtection": false, + "supportAuthenticationPlugin": false, + "needToApplyParameterGroup": false, + "needMigration": false, + "supportDbVersionUpgrade": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ +--- + +### DB 인스턴스 수정하기 + +```http +PUT /v3.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbVersion | Body | Enum | X | DB 엔진 버전 코드 | +| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
- 기본값: `false` | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbPort": 1, + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "useDummy": false, + "dbSecurityGroupIds": [], + "executeBackup": false, + "useOnlineFailover": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 백업하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/backup +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "backupName": "backupName" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 백업 정보 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backupPeriod | Body | Number | 백업 보관 기간(일) | +| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | +| backupRetryCount | Body | Number | 백업 재시도 횟수 | +| replicationRegion | Body | Enum | 백업 복제 리전
- KR4: `한국(대구)` | +| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration
- HALF_AN_HOUR
- ONE_HOUR
- ONE_HOUR_AND_HALF
- TWO_HOURS
- TWO_HOURS_AND_HALF
- THREE_HOURS | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "backupPeriod": 1, + "ftwrlWaitTimeout": 1, + "backupRetryCount": 1, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +--- + +### 백업 정보 수정하기 + +```http +PUT /v3.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +
예시 +

+ +```json +{ + "backupPeriod": 0, + "ftwrlWaitTimeout": 0, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 오브젝트 스토리지로 백업 + +```http +POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | + +
예시 +

+ +```json +{ + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 테스트 용 DB 이미지 메타 변경 + +```http +PUT /v3.0/db-instances/{dbInstanceId}/change-image-meta +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 스키마 목록 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSchemas | Body | Array | DB 스키마 목록 | +| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | +| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | +| dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbSchemas": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### DB 스키마 생성하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbSchemaName | Body | String | O | DB 스키마 이름
- 최대 길이: `64`
- 영문 시작, 영문/숫자/_ 허용, 1~64자, MySQL 예약어 불가 | + +
예시 +

+ +```json +{ + "dbSchemaName": "dbSchemaName-example" +} +```

#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 스키마 삭제하기 + +```http +DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbSchemaId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 사용자 목록 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/db-users +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbUsers | Body | Array | DB 사용자 목록 | +| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | +| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | +| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- STABLE
- CREATING
- UPDATING
- SYNCING
- DELETING
- DELETED | +| dbUsers.createdYmdt | Body | DateTime | 생성 일시 | +| dbUsers.updatedYmdt | Body | DateTime | 수정 일시 | +| dbUsers.authenticationPlugin | Body | Enum | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| dbUsers.tlsOption | Body | Enum | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbUsers": [ + { + "tlsOption": "NONE" + } + ] +} +``` + +

+
--- -### DB 인스턴스 수정하기 +### DB 사용자 생성하기 ```http -PUT /v3.0/db-instances/{dbInstanceId} +POST /v3.0/db-instances/{dbInstanceId}/db-users ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|--------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbPort | Body | Number | X | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbVersion | Body | Enum | X | DB 엔진 유형 | -| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
기본값: `false` | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| host | Body | String | O | DB 사용자 계정의 호스트명
- 최대 길이: `45` | +| authorityType | Body | Enum | O | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |
예시

```json { - "dbInstanceName": "db-instance2", - "description": "description2", - "dbPort": 10001, - "dbSecurityGroupIds": [], - "executeBackup": true + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "host": "host-example", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" } ``` @@ -893,70 +1531,106 @@ PUT /v3.0/db-instances/{dbInstanceId} #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### DB 인스턴스 삭제하기 +### DB 사용자 삭제하기 ```http -DELETE /v3.0/db-instances/{dbInstanceId} +DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | ---- - -### DB 인스턴스 재시작하기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/restart +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} ``` -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +

+
-#### 응답 +--- -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +### DB 사용자 수정하기 ---- -### DB 인스턴스 강제 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/force-restart +PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserId | URL | UUID | O | | +| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| authorityType | Body | Enum | X | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "dbPassword": "dbPassword", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` +

+
#### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -967,282 +1641,228 @@ POST /v3.0/db-instances/{dbInstanceId}/force-restart "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ```

- --- -### DB 인스턴스 시작하기 +### DB 인스턴스 삭제 보호 설정 변경 ```http -POST /v3.0/db-instances/{dbInstanceId}/start +PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | + +
예시 +

+ +```json +{ + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 정지하기 +### DB 인스턴스 강제 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/stop +POST /v3.0/db-instances/{dbInstanceId}/force-restart ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 백업하기 +### 고가용성 수정하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/backup +PUT /v3.0/db-instances/{dbInstanceId}/high-availability ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|-----------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupName | Body | String | O | 백업을 식별할 수 있는 이름 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -### DB 인스턴스 백업 후 내보내기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage +```json +{ + "useHighAvailability": false, + "pingInterval": 1 +} ``` -#### 요청 +

+
+ +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 복제하기 +### 고가용성 일시 중지하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/replicate +POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록
- 기본값: 원본 DB 인스턴스 값 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: 원본 DB 인스턴스 값 | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄)
- 기본값: 원본 DB 인스턴스 값 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00`
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간
- 기본값: 원본 DB 인스턴스 값 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance-replicate", - "description": "description", - "dbPort": 11000, - "network": { - "availabilityZone": "kr-pub-a" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "storage": { - "stroageSize": 100 - } + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 승격하기 +### 고가용성 복구하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/promote +POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### 복원 정보 조회 +### 고가용성 다시 시작하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/restoration-info +POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | -| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | -| restorableBackups | Body | Array | 복원 가능한 백업 목록 | -| restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | -| restorableBackups.backup.backupName | Body | String | 백업 이름 | -| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | -| restorableBackups.backup.backupType | Body | Enum | 백업 유형
  • `AUTO`: 자동
  • `MANUAL`: 수동
| -| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
  • `BACKING_UP`: 백업 중인 경우
  • `COMPLETED`: 백업이 완료된 경우
  • `DELETING`: 백업이 삭제 중인 경우
  • `DELETED`: 백업이 삭제된 경우
  • `ERROR`: 오류가 발생한 경우
| -| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| restorableBackups.backup.dbVersion | Body | String | DB 엔진 유형 | -| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | -| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | -| restorableBackups.backup.binLogPosition | Body | Number | 바이너리 로그 파일 위치 | -| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | -| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | -| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "oldestRestorableYmdt": "2023-07-09T16:33:33+09:00", - "latestRestorableYmdt": "2023-07-10T15:44:44+09:00", - "restorableBackups": [ - { - "backup": { - "backupId": "145d889a-fe08-474f-8f58-bde576ff96a9", - "backupName": "example-backup-name", - "backupStatus": "COMPLETED", - "dbInstanceId": "dba1be25-9429-4589-9716-7fb6daad7cb9", - "dbInstanceName": "original-db-instance-name", - "dbVersion": "MYSQL_V8028", - "backupType": "MANUAL", - "backupSize": 8299904, - "useBackupLock": true, - "failoverCount": 0, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 367916037, - "createdYmdt": "2023-07-10T15:44:44+09:00", - "updatedYmdt": "2023-07-10T15:46:07+09:00" - }, - "restorableBinLogs": [ - "mysql-bin.000001" - ] - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ``` @@ -1251,39 +1871,25 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info --- -### 복원될 마지막 쿼리 조회 +### 고가용성 분리하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query +POST /v3.0/db-instances/{dbInstanceId}/high-availability/split ``` -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|------|----|-----------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restoreType | Query | Enum | O | 복원 타입 종류

  • `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
  • `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
| - -#### restoreType이 `TIMESTAMP`인 경우 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-------|----------|----|-------------------------------------------| -| restoreYmdt | Query | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +#### 요청 -#### restoreType이 `BINLOG`인 경우 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------|-------|--------|----|--------------------| -| backupId | Query | UUID | O | 복원에 사용할 백업의 식별자 | -| binLogFileName | Query | String | O | 복원에 사용할 바이너리 로그 이름 | -| binLogPosition | Query | Number | O | 복원에 사용할 바이너리 로그 위치 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|----------|--------------------------------------| -| executedYmdt | Body | DateTime | 쿼리 수행 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| lastQuery | Body | String | 마지막 수행 쿼리 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1295,8 +1901,7 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query "resultMessage": "SUCCESS", "isSuccessful": true }, - "executedYmdt": "2023-03-17T14:02:29+09:00", - "lastQuery": "INSERT INTO `test`.`test`SET @1='0123'" + "jobId": "jobId-example" } ``` @@ -1305,303 +1910,189 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query --- -### 복원 +### 로그 파일 목록 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/restore +GET /v3.0/db-instances/{dbInstanceId}/log-files ``` -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restore | Body | Object | O | 복원 정보 객체 | -| restore.restoreType | Body | Enum | O | 복원 타입 종류

  • `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
  • `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
  • `BACKUP`: 기존에 생성한 백업을 이용한 스냅숏 복원 타입
| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
  • 최솟값: `3306`
  • 최댓값: `43306`
| -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
  • 기본값: `false`
| -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
  • 기본값: `3`
  • 최솟값: `1`
  • 최댓값: `600`
| -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
  • 기본값: `false`
| -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
  • 기본값: `false`
| -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
  • 예시: `kr-pub-a`
| -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
  • 최솟값: `20`
  • 최댓값: `2048`
| -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
  • 최솟값: `0`
  • 최댓값: `730`
| -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
  • 기본값: `1800`
  • 최솟값: `0`
  • 최댓값: `21600`
| -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
  • 기본값: `0`
  • 최솟값: `0`
  • 최댓값: `10`
| -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
  • `KR1`: 한국(판교)
  • `KR2`: 한국(평촌)
  • `JP1`: 일본(도쿄)
| -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
  • 기본값: `true`
| -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
  • 예시: `00:00:00`
| -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
  • `HALF_AN_HOUR`: 30분
  • `ONE_HOUR`: 1시간
  • `ONE_HOUR_AND_HALF`: 1시간 30분
  • `TWO_HOURS`: 2시간
  • `TWO_HOURS_AND_HALF`: 2시간 30분
  • `THREE_HOURS`: 3시간
| -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | +이 API는 요청 본문을 요구하지 않습니다. -#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|----------|----|------------------------------------------------------------------------------------------------| -| restore.restoreYmdt | Body | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD)
복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능하다. | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| logFiles | Body | Array | 로그 파일 목록 | +| logFiles.logFileName | Body | String | 로그 파일 이름 | +| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- ERROR
- BINLOG
- GENERAL
- SLOW_QUERY
- AUDIT
- BACKUP | +| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | +| logFiles.createdYmdt | Body | DateTime | 생성 일시 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "TIMESTAMP", - "restoreYmdt": "2023-07-10T15:44:44+09:00" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "logFiles": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) +--- + +### 로그 파일 내보내기 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------------|------|--------|----|--------------------| -| restore.backupId | Body | UUID | O | 복원에 사용할 백업의 식별자 | -| restore.binLog | Body | Object | O | 바이너리 로그 정보 객체 | -| restore.binLog.binLogFileName | Body | String | O | 복원에 사용할 바이너리 로그 이름 | -| restore.binLog.binLogPosition | Body | Number | O | 복원에 사용할 바이너리 로그 위치 | +```http +POST /v3.0/db-instances/{dbInstanceId}/log-files/export +``` -* 바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. +#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| logFileNames | Body | Array | O | 로그 파일 이름 목록 | +| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BINLOG", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36", - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 1234567 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "logFileNames": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

-#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|------|------------------------------|-----------------| -| restore.backupId | Body | UUID | O(restoreType이 `BACKUP`인 경우) | 복원에 사용할 백업의 식별자 | - +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BACKUP", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

+--- + +### 네트워크 정보 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/network-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | +| subnet | Body | Object | 서브넷 객체 | +| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnet.subnetCidr | Body | String | 서브넷의 CIDR | +| endPoints | Body | Array | 접속 정보 목록 | +| endPoints.domain | Body | String | 도메인 | +| endPoints.ipAddress | Body | String | IP 주소 | +| endPoints.endPointType | Body | String | 접속 정보 타입 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "availabilityZone": "availabilityZone-example", + "subnet": { + "subnetId": "subnetId-example", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example" + }, + "endPoints": [ + { + "endPointType": "endPointType-example" + } + ] +} +``` +

+
--- -### 오브젝트 스토리지로부터 복원 +### 네트워크 정보 수정하기 ```http -POST /v3.0/db-instances/restore-from-obs +PUT /v3.0/db-instances/{dbInstanceId}/network-info ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|----------------------------------------------------------------------------------------| -| restore | Body | Object | O | 복원 정보 객체 | -| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | -| restore.username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | -| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | -| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
  • 최솟값: `3306`
  • 최댓값: `43306`
| -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
  • 기본값: `false`
| -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
  • 기본값: `3`
  • 최솟값: `1`
  • 최댓값: `600`
| -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
  • 기본값: `false`
| -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
  • 기본값: `false`
| -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
  • 예시: `kr-pub-a`
| -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
  • 최솟값: `20`
  • 최댓값: `2048`
| -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
  • 최솟값: `0`
  • 최댓값: `730`
| -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
  • 기본값: `1800`
  • 최솟값: `0`
  • 최댓값: `21600`
| -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
  • 기본값: `0`
  • 최솟값: `0`
  • 최댓값: `10`
| -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
  • `KR1`: 한국(판교)
  • `KR2`: 한국(평촌)
  • `JP1`: 일본(도쿄)
| -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
  • 기본값: `true`
| -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
  • 예시: `00:00:00`
| -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
  • `HALF_AN_HOUR`: 30분
  • `ONE_HOUR`: 1시간
  • `ONE_HOUR_AND_HALF`: 1시간 30분
  • `TWO_HOURS`: 2시간
  • `TWO_HOURS_AND_HALF`: 2시간 30분
  • `THREE_HOURS`: 3시간
| - - +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbVersion": "MYSQL_V8028", - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "tenantId":"tenant-id", - "username":"username", - "password":"password", - "targetContainer":"targetContainer", - "objectPath":"objectPath" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "usePublicAccess": false } ``` @@ -1610,30 +2101,48 @@ POST /v3.0/db-instances/restore-from-obs #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +

예시 +

---- +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+--- -### DB 인스턴스 삭제 보호 설정 변경하기 +### DB 인스턴스 승격하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection +POST /v3.0/db-instances/{dbInstanceId}/promote ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1644,7 +2153,8 @@ PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ``` @@ -1653,137 +2163,203 @@ PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection --- -### 고가용성 수정하기 +### DB 인스턴스 복제하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/high-availability +POST /v3.0/db-instances/{dbInstanceId}/replicate ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|---------|----|------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부 | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | X | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | X | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | X | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | ---- - -### 고가용성 다시 시작하기 +

예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} ``` -#### 요청 +

+
-이 API는 요청 본문을 요구하지 않습니다. +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | -#### 응답 +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 고가용성 일시 중지하기 +### DB 인스턴스 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause +POST /v3.0/db-instances/{dbInstanceId}/restart ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | -### 고가용성 복구하기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair +```json +{ + "useOnlineFailover": false, + "executeBackup": false, + "waitReplicationDelay": false, + "useReadOnly": false +} ``` -#### 요청 +

+
-이 API는 요청 본문을 요구하지 않습니다. +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | -#### 응답 +
예시 +

-| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### 고가용성 분리하기 +### DB 인스턴스 복원 정보 조회 ```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/split +GET /v3.0/db-instances/{dbInstanceId}/restoration-info ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 데이터 스토리지 정보 보기 +### 복원될 마지막 쿼리 조회 ```http -GET /v3.0/db-instances/{dbInstanceId}/storage-info +GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------|------|--------|--------------------------------------------------------------------------------------| -| storageType | Body | Enum | 데이터 스토리지 타입 | -| storageSize | Body | Number | 데이터 스토리지 크기(GB) | -| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- `DETACHED`: 부착되지 않음
- `ATTACHED`: 부착됨
- `DELETED`: 삭제됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| executedYmdt | Body | DateTime | 쿼리 수행 일시 | +| lastQuery | Body | String | 마지막 수행 쿼리 |
예시

@@ -1795,66 +2371,142 @@ GET /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "General SSD", - "storageSize": 20, - "storageStatus": "ATTACHED" + "executedYmdt": "2023-12-31T15:00:00+09:00", + "lastQuery": "lastQuery-example" } ```

- --- -### 데이터 스토리지 정보 수정하기 +### DB 인스턴스 복원 ```http -PUT /v3.0/db-instances/{dbInstanceId}/storage-info +POST /v3.0/db-instances/{dbInstanceId}/restore ``` -#### 요청 +#### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: 현재값
- 최댓값: `2048` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| imageId | Body | UUID | X | 이미지의 식별자 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.restoreType | Body | Enum | O | 복원 타입
- TIMESTAMP: `복원 가능한 시간 이내의 시간을 이용한 시점 복원`
- BINLOG: `복원 가능한 바이너리 로그 위치를 이용한 시점 복원`
- BACKUP: `기존에 생성한 백업을 이용한 스냅숏 복원` | +| restore.binLog.binLogFileName | Body | String | X | 복원에 사용할 바이너리 로그 이름 | +| restore.binLog.binLogPosition | Body | Object | X | 복원에 사용할 바이너리 로그 위치 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -#### 응답 +#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.restoreYmdt | Body | DateTime | X | DB 인스턴스 복원 일시 | ---- +복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. -### 백업 정보 보기 +#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) -```http -GET /v3.0/db-instances/{dbInstanceId}/backup-info -``` +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | +| restore.binLog | Body | Object | X | 복원에 사용할 바이너리 로그 정보 객체 | -#### 요청 +바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. -이 API는 요청 본문을 요구하지 않습니다. +#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "useHighAvailability": false, + "imageId": "550e8400-e29b-41d4-a716-446655440000", + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "restoreType": "TIMESTAMP", + "binLog": { + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + } + } + }, + "useDefaultNotification": false, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|---------|----------------| -| backupPeriod | Body | Number | 백업 보관 기간(일) | -| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | -| backupRetryCount | Body | Number | 백업 재시도 횟수 | -| replicationRegion | Body | Enum | 백업 복제 리전 | -| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | -| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1866,100 +2518,73 @@ GET /v3.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "backupPeriod": 1, - "ftwrlWaitTimeout": 1800, - "backupRetryCount": 0, - "replicationRegion": null, - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] + "jobId": "jobId-example" } ```

- --- -### 백업 정보 수정하기 +### DB 인스턴스 시작하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/backup-info +POST /v3.0/db-instances/{dbInstanceId}/start ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------------------------|------|---------|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "backupPeriod": 5, - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndBgnTime": "01:00:00", - "backupWndDuration": "TWO_HOURS" - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 네트워크 정보 보기 +### DB 인스턴스 정지하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/network-info +POST /v3.0/db-instances/{dbInstanceId}/stop ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------------------------------------------------------------------------------------------------------------------------------| -| availabilityZone | Body | Enum | DB 인스턴스를 생성할 가용성 영역 | -| subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | UUID | 서브넷의 식별자 | -| subnet.subnetName | Body | UUID | 서브넷을 식별할 수 있는 이름 | -| subnet.subnetCidr | Body | UUID | 서브넷의 CIDR | -| endPoints | Body | Array | 접속 정보 목록 | -| endPoints.domain | Body | String | 도메인 | -| endPoints.ipAddress | Body | String | IP 주소 | -| endPoints.endPointType | Body | Enum | 접속 정보 타입
-`EXTERNAL`: 외부 접속 도메인
-`INTERNAL`: 내부 접속 도메인
-`PUBLIC`: (Deprecated) 외부 접속 도메인
-`PRIVATE`: (Deprecated) 내부 접속 도메인 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1971,19 +2596,7 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "kr-pub-a", - "subnet": { - "subnetId": "bd453789-34ae-416c-9f78-05b9e43a46be", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/16" - }, - "endPoints": [ - { - "domain": "ea548a78-d85f-43b4-8ddf-c88d999b9905.internal.kr1.mysql.rds.nhncloudservice.com", - "ipAddress": "192.168.0.2", - "endPointType": "INTERNAL" - } - ] + "jobId": "jobId-example" } ``` @@ -1992,55 +2605,27 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info --- -### 네트워크 정보 수정하기 - -```http -PUT /v3.0/db-instances/{dbInstanceId}/network-info -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 목록 보기 +### 스토리지 정보 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/db-users +GET /v3.0/db-instances/{dbInstanceId}/storage-info ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|-----------------------------------------------------------------------------------------------------------------------------| -| dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | -| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | -| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | -| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `UPDATING`: 수정 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbUsers.authenticationPlugin | Body | Enum | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| dbUsers.tlsOption | Body | Enum | TLS Option
- NONE
- SSL
- X509 | -| dbUsers.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbUsers.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageType | Body | Enum | 데이터 스토리지 타입 | +| storageSize | Body | Number | 데이터 스토리지 크기(GB) | +| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- DELETED: `삭제됨`
- PENDING_DELETION: `삭제 유예됨`
- DELETION_RESERVED: `삭제 예약됨 (스냅샷 정리 대기)`
- DETACHED: `해제됨`
- ATTACHED: `할당됨` |

예시

@@ -2052,19 +2637,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbUsers": [ - { - "dbUserId": "4b3d530b-fd02-4d59-a620-83d019a67bbb", - "dbUserName": "db-user", - "host": "%", - "authorityType": "DDL", - "dbUserStatus": "STABLE", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE", - "createdYmdt": "2023-03-17T14:02:29+09:00", - "updatedYmdt": "2023-03-17T14:02:31+09:00" - } - ] + "storageType": "ENUM_VALUE", + "storageSize": 1, + "storageStatus": "DELETED" } ``` @@ -2073,38 +2648,25 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users --- -### DB 사용자 생성하기 +### 스토리지 정보 수정하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/db-users +PUT /v3.0/db-instances/{dbInstanceId}/storage-info ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|-------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserName | Body | String | O | DB 사용자 계정 이름
- 최소 길이: `1`
- 최대 길이: `32` | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| host | Body | String | O | DB 사용자 계정의 호스트명
- 예시: `1.1.1.%` | -| authorityType | Body | Enum | O | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | - -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 설정할 수 있습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최댓값: `2048` |

예시

```json { - "dbUserName": "db-user", - "dbPassword": "password", - "host": "1.1.1.%", - "authorityType": "CRUD", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE" + "storageSize": 1 } ``` @@ -2113,99 +2675,50 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 수정하기 - -```http -PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|-------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | -| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| authorityType | Body | Enum | X | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | - -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 수정할 수 있습니다. -> `authenticationPlugin`의 값은 `dbPassword`와 동시에 수정을 해야 합니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

```json { - "authorityType": "DDL" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 삭제하기 - -```http -DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +## DB 인스턴스 그룹 -### DB 스키마 목록 보기 +### DB 인스턴스 그룹 목록 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/db-schemas +GET /v3.0/db-instance-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|------------------------------------------------------------------------------------------------------| -| dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | -| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | -| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbSchemas.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2217,12 +2730,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSchemas": [ + "dbInstanceGroups": [ { - "dbSchemaId": "7c9a94b8-86c1-435d-8af2-82a5e9d53fd4", - "dbSchemaName": "schema", - "dbSchemaStatus": "STABLE", - "createdYmdt": "2023-03-20T13:37:45+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2233,75 +2743,81 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas --- -### DB 스키마 생성하기 +### DB 인스턴스 그룹 상세 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/db-schemas +GET /v3.0/db-instance-groups/{dbInstanceGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaName | Body | String | O | DB 스키마 이름 | +이 API는 요청 본문을 요구하지 않습니다. -#### 응답 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +#### 응답 ---- +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | -### DB 스키마 삭제하기 +

예시 +

-```http -DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} ``` -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 로그 파일 목록 보기 +## DB 인스턴스 사양 + +### DB 인스턴스 사양 목록 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/log-files +GET /v3.0/db-flavors ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|-------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileTypes | Query | Array | X | 로그 파일 타입 종류 목록
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| logFiles | Body | Array | 로그 파일 목록 | -| logFiles.logFileName | Body | String | 로그 파일 이름 | -| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | -| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | -| logFiles.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -2313,12 +2829,9 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files "resultMessage": "SUCCESS", "isSuccessful": true }, - "logFiles": [ + "dbFlavors": [ { - "logFileName": "xtra_full.log-20230317", - "logFileType": "BACKUP", - "logFileSize": 4096, - "createdYmdt": "2023-03-17T14:02:29+09:00" + "vcpus": 1 } ] } @@ -2329,95 +2842,65 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files --- -### 로그 파일 내보내기 +## storages + +### 스토리지 목록 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/log-files/export +GET /v3.0/storages ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|--------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileNames | Body | Array | O | 로그 파일 이름 목록
- 최소 크기: `1` | -| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storages | Body | Array | 스토리지 목록 |

예시

```json { - "logFileNames": ["xtra_full.log-20230317"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "logs/backup" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storages": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +## 네트워크 -### 백업 목록 조회 +### 서브넷 목록 보기 ```http -GET /v3.0/backups +GET /v3.0/network/subnets ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|--------|----|----------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| backupType | Query | Enum | X | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동
- 기본값: 전체 | -| dbInstanceId | Query | UUID | X | 원본 DB 인스턴스의 식별자 | -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|-----------------------------------| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | UUID | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태 | -| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형 | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |
예시

@@ -2429,19 +2912,9 @@ GET /v3.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "backups": [ + "subnets": [ { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupSize": 4996786, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" + "availableIpCount": 1 } ] } @@ -2452,168 +2925,118 @@ GET /v3.0/backups --- -### 백업 내보내기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v3.0/backups/{backupId}/export +GET /v3.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storageTypes": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - -> [주의] -> 수동 백업의 경우 백업이 수행된 DB 인스턴스가 존재하지 않으면, 백업을 오브젝트 스토리지로 내보낼 수 없습니다. - --- -### 백업 복원하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v3.0/backups/{backupId}/restore +GET /v3.0/metric-statistics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Integer | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | - -
예시 -

- -```json - -{ - "dbInstanceName": "db-instance-restore", - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbPort": 10000, - "parameterGroupId": "132d383c-38e3-468a-a826-5e9a8fff15d0", - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 백업 삭제하기 +### Metric 목록 보기 ```http -DELETE /v3.0/backups/{backupId} +GET /v3.0/metrics ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "metrics": [ + { + "unit": "unit-example" + } + ] +} +``` + +

+
--- -## DB 보안 그룹 +## 백업 -### DB 보안 그룹 진행 상태 +### 백업 상태 -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | -### DB 보안 그룹 목록 보기 +### 백업 목록 조회 ```http -GET /v3.0/db-security-groups +GET /v3.0/backups ``` #### 요청 @@ -2622,15 +3045,20 @@ GET /v3.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-----------------------------------| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2642,14 +3070,10 @@ GET /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "totalCounts": 1, + "backups": [ { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2022-02-19T19:18:13+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2660,42 +3084,25 @@ GET /v3.0/db-security-groups --- -### DB 보안 그룹 상세 보기 +### 백업 삭제하기 ```http -GET /v3.0/db-security-groups/{dbSecurityGroupId} +DELETE /v3.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|----------|--------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다.
- `PORT`: 지정된 포트값으로 설정됩니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | 허용할 트래픽의 원격 소스 | -| rules.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| rules.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2707,30 +3114,7 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "rules": [ - { - "ruleId": "17c88ef6-95f1-4678-84f9-fee1b22e250d", - "description": "description", - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } - ], - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } + "jobId": "jobId-example" } ``` @@ -2739,50 +3123,33 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 생성하기 +### 백업 내보내기 ```http -POST /v3.0/db-security-groups +POST /v3.0/backups/{backupId}/export ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "rules": [ - { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0" - } - ] + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -2791,33 +3158,105 @@ POST /v3.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|------|---------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### DB 보안 그룹 수정하기 +### 백업 복원하기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId} +POST /v3.0/backups/{backupId}/restore ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|-----------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` |
예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } } ``` @@ -2826,7 +3265,9 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2837,33 +3278,37 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ```

- --- -### DB 보안 그룹 삭제하기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2874,7 +3319,12 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "userGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -2883,42 +3333,28 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 규칙 생성하기 +### 사용자 그룹 생성하기 ```http -POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v3.0/user-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT", - "minPort": 10000, - "maxPort": 10000 - }, - "cidr": "0.0.0.0/0" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -2927,178 +3363,74 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 보안 그룹 규칙 수정하기 - -```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleId | URL | UUID | O | DB 보안 그룹 규칙의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "DB_PORT" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "0.0.0.0/0" + "userGroupId": "userGroupId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 보안 그룹 규칙 삭제하기 - -```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|-------|----|---------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleIds | Query | Array | O | DB 보안 그룹 규칙의 식별자 목록 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 +### 사용자 그룹 삭제하기 ```http -GET /v3.0/parameter-groups +DELETE /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------|-------|------|----|----------| -| dbVersion | Query | Enum | X | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-------------------------------------------------------------------| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "parameterGroups": [ - { - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "createdYmdt": "2023-02-31T15:28:17+09:00", - "updatedYmdt": "2023-02-31T15:28:17+09:00" - } - ] -} -``` - -

-
- +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 상세 보기 +### 사용자 그룹 상세 보기 ```http -GET /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|--------------------------------------------------------------------------------------------------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | UUID | 파라미터 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- `CLIENT`: client
- `MYSQL`: mysql
- `MYSQLD`: mysqld | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- `VARIABLE`: 언제든 수정 가능
- `CONSTANT`: 수정 불가능
- `INIT_VARIABLE`: DB 인스턴스 생성 시에만 수정 가능 | -| parameters.applyType | Body | Enum | 적용 타입
- `SESSION`: 세션 적용
- `FILE`: 설정 파일 적용(재시작 필요)
- `BOTH`: 전체(재시작 필요) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3110,56 +3442,47 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "parameters": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "parameterId": "fa040b5e-f29f-46de-8f0d-bba4cb82887a", - "parameterFileGroup": "client", - "parameterName": "socket", - "fileParameterName": "socket", - "value": "/home/tcrds/db/mysql/tmp/mysql.sock", - "defaultValue": "/home/tcrds/db/mysql/tmp/mysql.sock", - "allowedValue": "", - "updateType": "CONSTANT", - "applyType": "BOTH" + "memberId": "memberId-example" } ], - "createdYmdt": "2023-03-13T11:02:28+09:00", - "updatedYmdt": "2023-03-13T11:02:28+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

- --- -### 파라미터 그룹 생성하기 +### 사용자 그룹 수정하기 ```http -POST /v3.0/parameter-groups +PUT /v3.0/user-groups/{userGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |
예시

```json { - "parameterGroupName": "parameter-group", - "dbVersion": "MYSQL_V8028" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -3168,67 +3491,86 @@ POST /v3.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 복사하기 +## 알림 그룹 + +### 알림 그룹 목록 보기 ```http -POST /v3.0/parameter-groups/{parameterGroupId}/copy +GET /v3.0/notification-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "parameterGroupName": "parameter-group-copy", - "description": "copy" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "notificationGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | - --- -### 파라미터 그룹 수정하기 +### 알림 그룹 생성하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId} +POST /v3.0/notification-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |
예시

```json { - "parameterGroupName": "parameter-group" + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], + "userGroupIds": [] } ``` @@ -3237,7 +3579,9 @@ PUT /v3.0/parameter-groups/{parameterGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3248,7 +3592,8 @@ PUT /v3.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3257,75 +3602,57 @@ PUT /v3.0/parameter-groups/{parameterGroupId} --- -### 파라미터 수정하기 +### 알림 그룹 삭제하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/parameters +DELETE /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------|------|--------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | - -

예시 -

- -```json -{ - "modifiedParameters": [ - { - "parameterId": "3abac558-7274-44e1-9f4a-f100f53f67ba", - "value": "0" - } - ] -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } -} -``` - -

-
- --- -### 파라미터 그룹 재설정하기 +### 알림 그룹 상세 보기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/reset +GET /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3336,7 +3663,24 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/reset "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ + { + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3345,48 +3689,66 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/reset --- -### 파라미터 그룹 삭제하기 +### 알림 그룹 수정하기 ```http -DELETE /v3.0/parameter-groups/{parameterGroupId} +PUT /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 사용자 그룹 +## 이벤트 -### 사용자 그룹 목록 보기 +### 이벤트 카테고리 + +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. + +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | + +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v3.0/user-groups +GET /v3.0/event-codes ``` #### 요청 @@ -3395,13 +3757,11 @@ GET /v3.0/user-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|-----------------------------------| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |
예시

@@ -3413,12 +3773,9 @@ GET /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "eventCodes": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "eventCategoryType": "ALL" } ] } @@ -3429,31 +3786,30 @@ GET /v3.0/user-groups --- -### 사용자 그룹 상세 보기 +### 이벤트 목록 조회 ```http -GET /v3.0/user-groups/{userGroupId} +GET /v3.0/events ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|----------|-----------------------------------------------------------------------------------------------------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
`ENTIRE`: 프로젝트 멤버 전체를 포함하는 사용자 그룹
`INDIVIDUAL_MEMBER`: 특정 프로젝트 멤버를 포함하는 사용자 그룹 | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

@@ -3465,16 +3821,12 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "userGroupTypeCode": "INDIVIDUAL_MEMBER", - "members": [ + "totalCounts": 1, + "events": [ { - "memberId": "1321e759-2ef3-4b85-9921-b13e918b24b5" + "eventYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + ] } ``` @@ -3483,75 +3835,99 @@ GET /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 생성하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v3.0/user-groups +GET /v3.0/event-subscriptions ``` -#### 요청 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|-------------------------------------------------------------| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록
`selectAllYN`이 true인 경우 해당 필드 값은 무시됨 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |

예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } ] } ``` -```json -{ - "userGroupName": "dev-team", - "selectAllYN":true -} -``` -

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------------|------|------|-------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | - --- -### 사용자 그룹 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v3.0/user-groups/{userGroupId} +POST /v3.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|----------------------------------------------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | -| userGroupName | Body | String | X | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5", - "f9064b09-2b15-442e-a4b0-3a5a2754555e" - ] + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ``` @@ -3560,7 +3936,9 @@ PUT /v3.0/user-groups/{userGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -3571,7 +3949,8 @@ PUT /v3.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -3580,64 +3959,121 @@ PUT /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 삭제하기 +### 이벤트 구독 삭제하기 ```http -DELETE /v3.0/user-groups/{userGroupId} +DELETE /v3.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v3.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 알림 그룹 +## 작업 정보 -### 알림 그룹 목록 보기 +### 작업 상태 + +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 ```http -GET /v3.0/notification-groups +GET /v3.0/jobs/{jobId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------------|------|----------|-----------------------------------| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3649,17 +4085,15 @@ GET /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ { - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "resourceId": "resourceId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3668,37 +4102,30 @@ GET /v3.0/notification-groups --- -### 알림 그룹 상세 보기 +## 파라미터 그룹 + +### 파라미터 그룹 목록 보기 ```http -GET /v3.0/notification-groups/{notificationGroupId} +GET /v3.0/parameter-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------------|------|----------|-----------------------------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3710,25 +4137,11 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "dbInstances": [ - { - "dbInstanceId": "ed5cb985-526f-4c54-9ae0-40288593de65", - "dbInstanceName": "database" - } - ], - "userGroups": [ + "parameterGroups": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + ] } ``` @@ -3737,37 +4150,28 @@ GET /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v3.0/notification-groups +POST /v3.0/parameter-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------------| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "notificationGroupName": "dev-team-noti", - "notifyEmail": false, - "isEnable": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65" - ], - "userGroupIds": [ - "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0" - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -3776,49 +4180,84 @@ POST /v3.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|------|------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "parameterGroupId": "parameterGroupId-example" +} +``` + +

+
--- -### 알림 그룹 수정하기 +### 파라미터 그룹 삭제하기 ```http -PUT /v3.0/notification-groups/{notificationGroupId} +DELETE /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부 | -| notifySms | Body | Boolean | X | SMS 알림 여부 | -| isEnabled | Body | Boolean | X | 활성화 여부 | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +이 API는 요청 본문을 요구하지 않습니다. -
예시 -

+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -```json -{ - "notifyEmail": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65", - "d51b7da0-682f-47ff-b588-b739f6adc740" - ] -} +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 파라미터 그룹 상세 보기 + +```http +GET /v3.0/parameter-groups/{parameterGroupId} ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3829,7 +4268,19 @@ PUT /v3.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ + { + "applyType": "BOTH" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3838,61 +4289,71 @@ PUT /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 수정하기 ```http -DELETE /v3.0/notification-groups/{notificationGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 모니터링 +이 API는 응답 본문을 반환하지 않습니다. -### Metric 목록 보기 +--- + +### 파라미터 그룹 복사하기 ```http -GET /v3.0/metrics +POST /v3.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|--------|-----------| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | Enum | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -3904,12 +4365,7 @@ GET /v3.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "measureName": "CPU_USAGE", - "unit": "%" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3918,56 +4374,29 @@ GET /v3.0/metrics --- -### 통계 정보 조회 +### 파라미터 수정하기 ```http -GET /v3.0/metric-statistics +PUT /v3.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|----------|----|-----------------------------------| -| dbInstanceId | Query | UUID | O | DB 인스턴스의 식별자 | -| measureNames | Query | Array | O | 조회 지표 목록
- 최소 크기: `1` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| interval | Query | Number | X | 조회 간격 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|-----------|----------| -| metricStatistics | Body | Array | 통계 정보 목록 | -| metricStatistics.measureName | Body | Enum | 측정 항목 유형 | -| metricStatistics.unit | Body | String | 측정값 단위 | -| metricStatistics.values | Body | Array | 측정값 목록 | -| metricStatistics.values.timestamp | Body | Timestamp | 측정 시간 | -| metricStatistics.values.value | Body | Object | 측정값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "metricStatistics": [ + "modifiedParameters": [ { - "measureName": "MYSQL_STATUS", - "unit": "", - "values": [ - [ - 1679298540, - "1" - ], - [ - 1679298600, - "1" - ], - [ - 1679298660, - "1" - ] - ] + "value": "value-example" } ] } @@ -3976,58 +4405,53 @@ GET /v3.0/metric-statistics

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 +### 파라미터 그룹 재설정하기 -### 이벤트 카테고리 +```http +PUT /v3.0/parameter-groups/{parameterGroupId}/reset +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 이벤트 목록 조회 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 프로젝트 정보 + +### 프로젝트 멤버 목록 보기 ```http -GET /v3.0/events +GET /v3.0/project/members ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| eventCategoryType | Query | Enum | O | 조회할 이벤트 카테고리 유형
- `ALL`: 전체
- `INSTANCE`: DB 인스턴스
- `BACKUP`: 백업
- `DB_SECURITY_GROUP`: DB 보안 그룹
- `TENANT`: 테넌트 | -| sourceId | Query | String | X | 이벤트가 발생한 대상 리소스의 식별자 | -| keyword | Query | String | X | 이벤트 메시지에 포함된 문자열 검색어 | -| ascendingOrder | Query | Enum | X | 이벤트 메시지 정렬 순서
- `ASC`: 오름차순
- `DESC`: 내림차순
- 기본값: `DESC` | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|---------------------------------------| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메시지 목록 | -| events.messages.langCode | Body | String | 언어 코드 | -| events.messages.message | Body | String | 이벤트 메시지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -4039,32 +4463,9 @@ GET /v3.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 28, - "events": [ + "members": [ { - "eventCategoryType": "INSTANCE", - "eventCode": "INSTC_02_01", - "sourceId": "76f00947-356e-4a20-8922-428368cc45ed", - "sourceName": "db-instance", - "messages": [ - { - "langCode": "EN", - "message": "DB instance started" - }, - { - "langCode": "JA", - "message": "DBインスタンスの起動" - }, - { - "langCode": "KO", - "message": "DB 인스턴스 시작" - }, - { - "langCode": "ZH", - "message": "DB instance started" - } - ], - "eventYmdt": "2023-03-20T16:31:59+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -4075,10 +4476,10 @@ GET /v3.0/events --- -### 구독 가능한 이벤트 코드 목록 보기 +### 리전 목록 보기 ```http -GET /v3.0/event-codes +GET /v3.0/project/regions ``` #### 요청 @@ -4087,11 +4488,11 @@ GET /v3.0/event-codes #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|-------|-------------| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

@@ -4103,10 +4504,9 @@ GET /v3.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "regions": [ { - "eventCode": "INSTC_05_01", - "eventCategoryType": "INSTANCE" + "isEnabled": false } ] } @@ -4116,3 +4516,4 @@ GET /v3.0/event-codes

--- + diff --git a/ko/api-guide-v3.0.md b/ko/api-guide-v3.0.md index cd8d9ce0..97c9a80b 100644 --- a/ko/api-guide-v3.0.md +++ b/ko/api-guide-v3.0.md @@ -1,41 +1,30 @@ ## Database > RDS for MySQL > API 가이드 -## RDS for MySQL API 공통 정보 -### API 엔드포인트 -| 리전 | 엔드포인트 | -|-----------|-----------------------------------------------| -| 한국(판교) 리전 | https://kr1-rds-mysql.api.nhncloudservice.com | -| 한국(평촌) 리전 | https://kr2-rds-mysql.api.nhncloudservice.com | -| 일본 리전 | https://jp1-rds-mysql.api.nhncloudservice.com | +## RDS for MySQL API 공통 정보 ### 인증 및 권한 -RDS for MySQL 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](/nhncloud/ko/public-api/user-access-key)를 참고하세요. - -생성된 Key는 Appkey와 함께 요청 Header에 포함해야 합니다. +RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. +발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------|--------|--------|----|-------------------------------------------------------------| -| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-TC-AUTHENTICATION-ID | Header | String | O | API 보안 설정 메뉴의 User Access Key ID | -| X-TC-AUTHENTICATION-SECRET | Header | String | O | API 보안 설정 메뉴의 Secret Access Key | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | +| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. -또한 프로젝트 멤버 역할에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER`로 구분하여 권한을 부여할 수 있습니다. - -* `RDS for MySQL ADMIN` 권한은 모든 기능을 사용 가능합니다. -* `RDS for MySQL VIEWER` 권한은 정보를 조회하는 기능만 사용 가능합니다. +* `RDS for MySQL ADMIN` 역할은 API 실행에 필요한 모든 권한이 부여됩니다. +* `RDS for MySQL VIEWER` 역할은 정보를 조회하는 권한만 부여됩니다. * DB 인스턴스를 생성, 수정, 삭제하거나, DB 인스턴스를 대상으로 하는 어떠한 기능도 사용할 수 없습니다. - * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용 가능합니다. + * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용할 수 있습니다. API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같은 오류가 발생합니다. -| resultCode | resultMessage | 설명 | -|------------|---------------|-------------| -| 80401 | Unauthorized | 인증에 실패했습니다. | -| 80403 | Forbidden | 권한이 없습니다. | +| resultCode | resultMessage | 설명 | +|------------|---------------|-----| +| 80401 | Unauthorized | 인증에 실패했습니다. | +| 80403 | Forbidden | 권한이 없습니다. | ### 응답 공통 정보 @@ -53,52 +42,68 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 ``` #### 필드 -| 이름 | 형식 | 설명 | -|---------------|---------|-----------------------------------------| -| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | -| resultMessage | String | 결과 메시지 | -| isSuccessful | Boolean | 성공 여부 | +| 이름 | 형식 | 설명 | +|-----|-----|-----| +| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | +| resultMessage | String | 결과 메시지 | +| isSuccessful | Boolean | 성공 여부 | + +### API 엔드포인트 +| 리전 | 엔드포인트 | +|------|----------| +| 한국(판교) 리전 | https://kr1-rds-mysql.api.nhncloudservice.com | +| 한국(평촌) 리전 | https://kr2-rds-mysql.api.nhncloudservice.com | +| 일본 리전 | https://jp1-rds-mysql.api.nhncloudservice.com | ### DB 엔진 유형 -| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 정보 | -|--------------|----------|-----------------|--------| -| MYSQL\_V5633 | X | X | NATIVE | -| MYSQL\_V5715 | O | O | NATIVE | -| MYSQL\_V5719 | O | O | NATIVE | -| MYSQL\_V5726 | O | O | NATIVE | -| MYSQL\_V5731 | X | X | NATIVE | -| MYSQL\_V5733 | O | X | NATIVE, SHA256 | -| MYSQL\_V5737 | O | O | NATIVE, SHA256 | -| MYSQL\_V8018 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8023 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8028 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8032 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8033 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8034 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8405 | O | O | CACHING_SHA2 | -| MYSQL_V8406 | O | O | CACHING_SHA2 | -| MYSQL_V8407 | O | O | CACHING_SHA2 | -| MYSQL_V8408 | O | O | CACHING_SHA2 | +| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | +|------------|----------|------------------|------------| +| MYSQL_V5633 | X | X | NATIVE | +| MYSQL_V5715 | O | O | NATIVE | +| MYSQL_V5719 | O | O | NATIVE | +| MYSQL_V5726 | O | O | NATIVE | +| MYSQL_V5731 | X | X | NATIVE | +| MYSQL_V5733 | O | X | NATIVE, SHA256 | +| MYSQL_V5737 | O | O | NATIVE, SHA256 | +| MYSQL_V8018 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8023 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8028 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8032 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8033 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8034 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8405 | O | O | CACHING_SHA2 | +| MYSQL_V8406 | O | O | CACHING_SHA2 | +| MYSQL_V8407 | O | O | CACHING_SHA2 | +| MYSQL_V8408 | O | O | CACHING_SHA2 | * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## 프로젝트 정보 +## DB 보안 그룹 -### 리전 목록 보기 +### DB 보안 그룹 진행 상태 + +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | + +### DB 보안 그룹 목록 보기 ```http -GET /v3.0/project/regions +GET /v3.0/db-security-groups ``` #### 요청 @@ -107,11 +112,15 @@ GET /v3.0/project/regions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------|------|---------|----------------------------------------------------------------------------| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -123,63 +132,51 @@ GET /v3.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ - { - "regionCode": "KR1", - "isEnabled": true - }, - { - "regionCode": "KR2", - "isEnabled": true - }, + "dbSecurityGroups": [ { - "regionCode": "JP1", - "isEnabled": true + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } ``` +

--- -### 프로젝트 멤버 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v3.0/project/members +POST /v3.0/db-security-groups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|--------|-----------------| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ { - "memberId": "1b1d3627-507a-49ea-8cb7-c86dfa9caa58", - "memberName": "홍길동", - "emailAddress": "gildong.hong@nhn.com", - "phoneNumber": "+821012345678" + "description": "description-example" } ] } @@ -188,29 +185,11 @@ GET /v3.0/project/members

---- - -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 - -```http -GET /v3.0/db-flavors -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -222,14 +201,7 @@ GET /v3.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbFlavorName": "m2.c1m2", - "ram": 2048, - "vcpus": 1 - } - ] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -238,76 +210,63 @@ GET /v3.0/db-flavors --- -## 네트워크 - -### 서브넷 목록 보기 +### DB 보안 그룹 삭제하기 ```http -GET /v3.0/network/subnets +DELETE /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|---------|------------------| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | UUID | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | - -

예시 -

+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "subnets": [ - { - "subnetId": "1b2a9b23-0725-4b92-8c78-35db66b8ad9f", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/24", - "usingGateway": true, - "availableIpCount": 240 - } - ] -} -``` +#### 응답 -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -## DB 엔진 - -### DB 엔진 목록 보기 +### DB 보안 그룹 상세 보기 ```http -GET /v3.0/db-versions +GET /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|---------|-----------------------| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroup | Body | Object | DB 보안 그룹 | +| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | +| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | +| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | +| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | +| dbSecurityGroup.rules.cidr | Body | String | CIDR | +| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | +| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -319,13 +278,19 @@ GET /v3.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ - { - "dbVersion": "MYSQL_V8028", - "dbVersionName": "MySQL 8.0.28", - "restorableFromObs": true - } - ] + "dbSecurityGroup": { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -334,61 +299,59 @@ GET /v3.0/db-versions --- -## 데이터 스토리지 - -### 데이터 스토리지 타입 목록 보기 +### DB 보안 그룹 수정하기 ```http -GET /v3.0/storage-types +PUT /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|-------|----------------| -| storageTypes | Body | Array | 데이터 스토리지 타입 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "storageTypes": [ - "General SSD", - "General HDD" - ] + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 데이터 스토리지 목록 보기 +### DB 보안 그룹 규칙 삭제하기 ```http -GET /v3.0/storages +DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------|------|-------|-------------| -| storages | Body | Array | 데이터 스토리지 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -400,10 +363,7 @@ GET /v3.0/storages "resultMessage": "SUCCESS", "isSuccessful": true }, - "storages": [ - "General SSD", - "General HDD" - ] + "jobId": "jobId-example" } ``` @@ -412,50 +372,51 @@ GET /v3.0/storages --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### DB 보안 그룹 규칙 생성하기 ```http -GET /v3.0/jobs/{jobId} +POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | + +

예시 +

+ +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------|-----|------|----|---------| -| jobId | URL | UUID | O | 작업의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------|------|----------|-----------------------------------| -| jobId | Body | UUID | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태 | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | Enum | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | UUID | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -467,16 +428,7 @@ GET /v3.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "0ddb042c-5af6-43fb-a914-f4dd0540eb7c", - "jobStatus": "RUNNING", - "resourceRelations": [ - { - "resourceType": "DB_INSTANCE", - "resourceId": "56b39dcf-65eb-47ec-9d4f-09f160ba2266" - } - ], - "createdYmdt": "2023-02-22T20:47:12+09:00", - "updatedYmdt": "2023-02-22T20:49:46+09:00" + "jobId": "jobId-example" } ``` @@ -485,27 +437,52 @@ GET /v3.0/jobs/{jobId} --- -## DB 인스턴스 그룹 - -### DB 인스턴스 그룹 목록 보기 +### DB 보안 그룹 규칙 수정하기 ```http -GET /v3.0/db-instance-groups +PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | + +

예시 +

+ +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------|------|----------|--------------------------------------------------------------------------| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -517,14 +494,7 @@ GET /v3.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ - { - "dbInstanceGroupId": "05de0746-89fd-49c8-94f9-9c5b1df97009", - "replicationType": "STANDALONE", - "createdYmdt": "2023-02-13T17:35:20+09:00", - "updatedYmdt": "2023-02-13T17:35:20+09:00" - } - ] + "jobId": "jobId-example" } ``` @@ -533,32 +503,26 @@ GET /v3.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v3.0/db-instance-groups/{dbInstanceGroupId} +GET /v3.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|-----------------| -| dbInstanceGroupId | URL | UUID | O | DB 인스턴스 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |

예시

@@ -570,17 +534,11 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "36617a8e-0df8-4b16-b6ea-6306019e95da", - "replicationType": "STANDALONE", - "dbInstances": [ + "dbVersions": [ { - "dbInstanceId": "6d2db0ef-fe9b-4ed4-97b1-d97fcb4cf1b8", - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE" + "restorableFromObs": false } - ], - "createdYmdt": "2023-03-03T17:38:14+09:00", - "updatedYmdt": "2023-03-03T17:38:14+09:00" + ] } ``` @@ -613,8 +571,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | `BACKING_UP` | 백업 중 | | `CANCELING` | 취소 중 | | `CREATING` | 생성 중 | -| `CREATING_SCHEMA` | DB 스키마 생성 중 | -| `CREATING_USER` | 사용자 생성 중 | +| `CREATING_SCHEMA` | DB 스키마 생성 중 | +| `CREATING_USER` | 사용자 생성 중 | | `DELETING` | 삭제 중 | | `DELETING_SCHEMA` | DB 스키마 삭제 중 | | `DELETING_USER` | 사용자 삭제 중 | @@ -633,8 +591,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | `STARTING` | 시작 중 | | `STOPPING` | 정지 중 | | `SYNCING_SCHEMA` | DB 스키마 동기화 중 | -| `SYNCING_USER` | 사용자 동기화 중 | -| `UPDATING_USER` | 사용자 수정 중 | +| `SYNCING_USER` | 사용자 동기화 중 | +| `UPDATING_USER` | 사용자 수정 중 | ### DB 인스턴스 목록 보기 @@ -648,20 +606,20 @@ GET /v3.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | -| dbInstances.dbPort | Body | Number | DB 포트 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태 | -| dbInstances.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstances.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstances | Body | Array | DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | +| dbInstances.dbPort | Body | Number | DB 포트 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbInstances.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstances.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -675,17 +633,7 @@ GET /v3.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "createdYmdt": "2023-01-23T12:03:13+09:00", - "updatedYmdt": "2023-02-02T17:20:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -696,44 +644,104 @@ GET /v3.0/db-instances --- -### DB 인스턴스 상세 보기 +### DB 인스턴스 생성하기 ```http -GET /v3.0/db-instances/{dbInstanceId} +POST /v3.0/db-instances ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| authenticationPlugin | Body | Enum | X | 인증 Plugin
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | TLS Option
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE", + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| dbPort | Body | Number | DB 포트 | -| dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| progressStatus | Body | Enum | DB 인스턴스의 현재 작업 진행 상태 | -| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | -| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | -| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | -| supportAuthenticationPlugin | Body | Boolean | 인증 플러그인 지원 여부 | -| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | -| needMigration | Body | Boolean | 마이그레이션 필요 여부 | -| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -745,26 +753,7 @@ GET /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "dbFlavorId": "e9ed4ef6-78d7-46fa-ace9-32481e97f3b7", - "parameterGroupId": "b03e8b13-de27-4d04-a488-ff5689589372", - "dbSecurityGroupIds": ["01908c35-d2c9-4852-baf0-17f06ec42c03"], - "notificationGroupIds": ["83a62a33-ddbf-4a04-8653-e54463d5b1ac"], - "useDeletionProtection": false, - "supportAuthenticationPlugin": true, - "needToApplyParameterGroup": false, - "needMigration": false, - "supportDbVersionUpgrade": true, - "createdYmdt": "2022-11-23T12:03:13+09:00", - "updatedYmdt": "2022-12-02T17:20:17+09:00" + "jobId": "jobId-example" } ``` @@ -773,84 +762,100 @@ GET /v3.0/db-instances/{dbInstanceId} --- -### DB 인스턴스 생성하기 +### 오브젝트 스토리지를 이용한 DB 인스턴스 복원 ```http -POST /v3.0/db-instances +POST /v3.0/db-instances/restore-from-obs ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|---------------------------------------------------------------------| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbUserName | Body | String | O | DB 사용자 계정명 | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- 기본값: `NATIVE`(미지원 시 `CACHING_SHA2`)
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| imageId | Body | UUID | X | 이미지의 식별자 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | +| restore.username | Body | String | O | NHN Cloud 계정 혹은 IAM 멤버 ID | +| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | +| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | +| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "dbVersion": "ENUM_VALUE", + "useHighAvailability": false, + "imageId": "550e8400-e29b-41d4-a716-446655440000", + "pingInterval": 3, "storage": { - "storageType": "General SSD", + "storageType": "ENUM_VALUE", "storageSize": 20 }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, "backup": { - "backupPeriod": 1, + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": true, "backupSchedules": [ { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR" + "backupWndDuration": "HALF_AN_HOUR" } ] - } + }, + "restore": { + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" + }, + "useDefaultNotification": false, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false } ``` @@ -859,117 +864,180 @@ POST /v3.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 수정하기 +### DB 인스턴스 삭제하기 ```http -PUT /v3.0/db-instances/{dbInstanceId} +DELETE /v3.0/db-instances/{dbInstanceId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|--------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbPort | Body | Number | X | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbVersion | Body | Enum | X | DB 엔진 유형 | -| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
기본값: `false` | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

```json { - "dbInstanceName": "db-instance2", - "description": "description2", - "dbPort": 10001, - "dbSecurityGroupIds": [], - "executeBackup": true + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 삭제하기 +### DB 인스턴스 상세 보기 ```http -DELETE /v3.0/db-instances/{dbInstanceId} +GET /v3.0/db-instances/{dbInstanceId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| dbPort | Body | Number | DB 포트 | +| dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | +| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | +| supportAuthenticationPlugin | Body | Boolean | 인증 plugin 지원 여부 | +| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | +| needMigration | Body | Boolean | 마이그레이션 필요 여부 | +| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | -### DB 인스턴스 재시작하기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/restart +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "dbFlavorId": "dbFlavorId-example", + "parameterGroupId": "parameterGroupId-example", + "dbSecurityGroupIds": [], + "notificationGroupIds": [], + "useDeletionProtection": false, + "supportAuthenticationPlugin": false, + "needToApplyParameterGroup": false, + "needMigration": false, + "supportDbVersionUpgrade": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} ``` -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +

+
-#### 응답 +--- -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +### DB 인스턴스 수정하기 ---- -### DB 인스턴스 강제 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/force-restart +PUT /v3.0/db-instances/{dbInstanceId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbVersion | Body | Enum | X | DB 엔진 버전 코드 | +| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
- 기본값: `false` | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbPort": 1, + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "useDummy": false, + "dbSecurityGroupIds": [], + "executeBackup": false, + "useOnlineFailover": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` +

+
#### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -980,108 +1048,156 @@ POST /v3.0/db-instances/{dbInstanceId}/force-restart "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ```

- --- -### DB 인스턴스 시작하기 +### DB 인스턴스 백업하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/start +POST /v3.0/db-instances/{dbInstanceId}/backup ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "backupName": "backupName" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### DB 인스턴스 정지하기 +### 백업 정보 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/stop +GET /v3.0/db-instances/{dbInstanceId}/backup-info ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backupPeriod | Body | Number | 백업 보관 기간(일) | +| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | +| backupRetryCount | Body | Number | 백업 재시도 횟수 | +| replicationRegion | Body | Enum | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration
- HALF_AN_HOUR
- ONE_HOUR
- ONE_HOUR_AND_HALF
- TWO_HOURS
- TWO_HOURS_AND_HALF
- THREE_HOURS | -### DB 인스턴스 백업하기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/backup +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "backupPeriod": 1, + "ftwrlWaitTimeout": 1, + "backupRetryCount": 1, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} ``` -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|-----------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupName | Body | String | O | 백업을 식별할 수 있는 이름 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### DB 인스턴스 백업 후 내보내기 +### 백업 정보 수정하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage +PUT /v3.0/db-instances/{dbInstanceId}/backup-info ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` |
예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "backupPeriod": 0, + "ftwrlWaitTimeout": 0, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] } ``` @@ -1090,63 +1206,56 @@ POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### DB 인스턴스 복제하기 +### DB 인스턴스 오브젝트 스토리지로 백업 ```http -POST /v3.0/db-instances/{dbInstanceId}/replicate +POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록
- 기본값: 원본 DB 인스턴스 값 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: 원본 DB 인스턴스 값 | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전
- 기본값: 원본 DB 인스턴스 값 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00`
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간
- 기본값: 원본 DB 인스턴스 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |
예시

```json { - "dbInstanceName": "db-instance-replicate", - "description": "description", - "dbPort": 11000, - "network": { - "availabilityZone": "kr-pub-a" - }, - "storage": { - "stroageSize": 100 - } + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -1155,107 +1264,88 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### DB 인스턴스 승격하기 +### 테스트 용 DB 이미지 메타 변경 ```http -POST /v3.0/db-instances/{dbInstanceId}/promote +PUT /v3.0/db-instances/{dbInstanceId}/change-image-meta ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 복원 정보 조회 +### DB 스키마 목록 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/restoration-info +GET /v3.0/db-instances/{dbInstanceId}/db-schemas ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | -| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | -| restorableBackups | Body | Array | 복원 가능한 백업 목록 | -| restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | -| restorableBackups.backup.backupName | Body | String | 백업 이름 | -| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | -| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동 | -| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- `BACKING_UP`: 백업 중인 경우
- `COMPLETED`: 백업이 완료된 경우
- `DELETING`: 백업이 삭제 중인 경우
- `DELETED`: 백업이 삭제된 경우
- `ERROR`: 오류가 발생한 경우 | -| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| restorableBackups.backup.dbVersion | Body | String | DB 엔진 유형 | -| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | -| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | -| restorableBackups.backup.binLogPosition | Body | Number | 바이너리 로그 파일 위치 | -| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | -| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | -| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSchemas | Body | Array | DB 스키마 목록 | +| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | +| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | +| dbSchemas.createdYmdt | Body | DateTime | 생성 일시 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "oldestRestorableYmdt": "2023-07-09T16:33:33+09:00", - "latestRestorableYmdt": "2023-07-10T15:44:44+09:00", - "restorableBackups": [ - { - "backup": { - "backupId": "145d889a-fe08-474f-8f58-bde576ff96a9", - "backupName": "example-backup-name", - "backupStatus": "COMPLETED", - "dbInstanceId": "dba1be25-9429-4589-9716-7fb6daad7cb9", - "dbInstanceName": "original-db-instance-name", - "dbVersion": "MYSQL_V8028", - "backupType": "MANUAL", - "backupSize": 8299904, - "useBackupLock": true, - "failoverCount": 0, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 367916037, - "createdYmdt": "2023-07-10T15:44:44+09:00", - "updatedYmdt": "2023-07-10T15:46:07+09:00" - }, - "restorableBinLogs": [ - "mysql-bin.000001" - ] - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbSchemas": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -1264,39 +1354,36 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info --- -### 복원될 마지막 쿼리 조회 +### DB 스키마 생성하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query +POST /v3.0/db-instances/{dbInstanceId}/db-schemas ``` -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|------|----|-----------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restoreType | Query | Enum | O | 복원 타입 종류
- `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
- `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입 | +#### 요청 -#### restoreType이 `TIMESTAMP`인 경우 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbSchemaName | Body | String | O | DB 스키마 이름
- 최대 길이: `64`
- 영문 시작, 영문/숫자/_ 허용, 1~64자, MySQL 예약어 불가 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-------|----------|----|-------------------------------------------| -| restoreYmdt | Query | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +

예시 +

-#### restoreType이 `BINLOG`인 경우 +```json +{ + "dbSchemaName": "dbSchemaName-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------|-------|--------|----|--------------------| -| backupId | Query | UUID | O | 복원에 사용할 백업의 식별자 | -| binLogFileName | Query | String | O | 복원에 사용할 바이너리 로그 이름 | -| binLogPosition | Query | Number | O | 복원에 사용할 바이너리 로그 위치 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|----------|--------------------------------------| -| executedYmdt | Body | DateTime | 쿼리 수행 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| lastQuery | Body | String | 마지막 수행 쿼리 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1308,8 +1395,7 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query "resultMessage": "SUCCESS", "isSuccessful": true }, - "executedYmdt": "2023-03-17T14:02:29+09:00", - "lastQuery": "INSERT INTO `test`.`test`SET @1='0123'" + "jobId": "jobId-example" } ``` @@ -1318,303 +1404,697 @@ GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query --- -### 복원 +### DB 스키마 삭제하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/restore +DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} ``` -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restore | Body | Object | O | 복원 정보 객체 | -| restore.restoreType | Body | Enum | O | 복원 타입 종류
- `TIMESTAMP`: 복원 가능 시간 범위 내의 특정 시각으로 시점 복원
- `BINLOG`: 복원 가능한 바이너리 로그 위치를 지정하여 시점 복원
- `BACKUP`: 기존에 생성한 백업을 이용하여 스냅숏 복원 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | +이 API는 요청 본문을 요구하지 않습니다. -#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbSchemaId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|----------|----|------------------------------------------------------------------------------------------------| -| restore.restoreYmdt | Body | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD)
복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능하다. | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "TIMESTAMP", - "restoreYmdt": "2023-07-10T15:44:44+09:00" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) +--- -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------------|------|--------|----|--------------------| -| restore.backupId | Body | UUID | O | 복원에 사용할 백업의 식별자 | -| restore.binLog | Body | Object | O | 바이너리 로그 정보 객체 | -| restore.binLog.binLogFileName | Body | String | O | 복원에 사용할 바이너리 로그 이름 | -| restore.binLog.binLogPosition | Body | Number | O | 복원에 사용할 바이너리 로그 위치 | +### DB 사용자 목록 보기 -* 바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. +```http +GET /v3.0/db-instances/{dbInstanceId}/db-users +``` +#### 요청 -
예시 -

+이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbUsers | Body | Array | DB 사용자 목록 | +| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | +| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | +| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- STABLE
- CREATING
- UPDATING
- SYNCING
- DELETING
- DELETED | +| dbUsers.createdYmdt | Body | DateTime | 생성 일시 | +| dbUsers.updatedYmdt | Body | DateTime | 수정 일시 | +| dbUsers.authenticationPlugin | Body | Enum | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| dbUsers.tlsOption | Body | Enum | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +

예시 +

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BINLOG", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36", - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 1234567 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbUsers": [ + { + "tlsOption": "NONE" + } + ] } ```

-#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) +--- + +### DB 사용자 생성하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/db-users +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|------|------------------------------|-----------------| -| restore.backupId | Body | UUID | O(restoreType이 `BACKUP`인 경우) | 복원에 사용할 백업의 식별자 | +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| host | Body | String | O | DB 사용자 계정의 호스트명
- 최대 길이: `45` | +| authorityType | Body | Enum | O | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "host": "host-example", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` + +

+
+#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BACKUP", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 사용자 삭제하기 + +```http +DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 사용자 수정하기 + +```http +PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbUserId | URL | UUID | O | | +| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| authorityType | Body | Enum | X | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "dbPassword": "dbPassword", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### DB 인스턴스 삭제 보호 설정 변경 + +```http +PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | + +
예시 +

+ +```json +{ + "useDeletionProtection": false +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 인스턴스 강제 재시작하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/force-restart +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 고가용성 수정하기 + +```http +PUT /v3.0/db-instances/{dbInstanceId}/high-availability +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | + +
예시 +

+ +```json +{ + "useHighAvailability": false, + "pingInterval": 1 +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 고가용성 일시 중지하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 고가용성 복구하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 고가용성 다시 시작하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 고가용성 분리하기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/high-availability/split +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+ +--- + +### 로그 파일 목록 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/log-files +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| logFiles | Body | Array | 로그 파일 목록 | +| logFiles.logFileName | Body | String | 로그 파일 이름 | +| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- ERROR
- BINLOG
- GENERAL
- SLOW_QUERY
- AUDIT
- BACKUP | +| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | +| logFiles.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "logFiles": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### 로그 파일 내보내기 + +```http +POST /v3.0/db-instances/{dbInstanceId}/log-files/export +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| logFileNames | Body | Array | O | 로그 파일 이름 목록 | +| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | + +
예시 +

+ +```json +{ + "logFileNames": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

+--- + +### 네트워크 정보 보기 + +```http +GET /v3.0/db-instances/{dbInstanceId}/network-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | +| subnet | Body | Object | 서브넷 객체 | +| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnet.subnetCidr | Body | String | 서브넷의 CIDR | +| endPoints | Body | Array | 접속 정보 목록 | +| endPoints.domain | Body | String | 도메인 | +| endPoints.ipAddress | Body | String | IP 주소 | +| endPoints.endPointType | Body | String | 접속 정보 타입 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "availabilityZone": "availabilityZone-example", + "subnet": { + "subnetId": "subnetId-example", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example" + }, + "endPoints": [ + { + "endPointType": "endPointType-example" + } + ] +} +``` +

+
--- -### 오브젝트 스토리지로부터 복원 +### 네트워크 정보 수정하기 ```http -POST /v3.0/db-instances/restore-from-obs +PUT /v3.0/db-instances/{dbInstanceId}/network-info ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------| -| restore | Body | Object | O | 복원 정보 객체 | -| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | -| restore.username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | -| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | -| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | - - +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbVersion": "MYSQL_V8028", - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "tenantId":"tenant-id", - "username":"username", - "password":"password", - "targetContainer":"targetContainer", - "objectPath":"objectPath" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "usePublicAccess": false } ``` @@ -1623,30 +2103,48 @@ POST /v3.0/db-instances/restore-from-obs #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +

예시 +

---- +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
+--- -### DB 인스턴스 삭제 보호 설정 변경하기 +### DB 인스턴스 승격하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection +POST /v3.0/db-instances/{dbInstanceId}/promote ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1657,7 +2155,8 @@ PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ``` @@ -1666,137 +2165,203 @@ PUT /v3.0/db-instances/{dbInstanceId}/deletion-protection --- -### 고가용성 수정하기 +### DB 인스턴스 복제하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/high-availability +POST /v3.0/db-instances/{dbInstanceId}/replicate ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|---------|----|------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부 | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | X | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | X | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | X | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | ---- - -### 고가용성 다시 시작하기 +

예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} ``` -#### 요청 +

+
-이 API는 요청 본문을 요구하지 않습니다. +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | -#### 응답 +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 고가용성 일시 중지하기 +### DB 인스턴스 재시작하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause +POST /v3.0/db-instances/{dbInstanceId}/restart ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | -### 고가용성 복구하기 +
예시 +

-```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair +```json +{ + "useOnlineFailover": false, + "executeBackup": false, + "waitReplicationDelay": false, + "useReadOnly": false +} ``` -#### 요청 +

+
-이 API는 요청 본문을 요구하지 않습니다. +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | -#### 응답 +
예시 +

-| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### 고가용성 분리하기 +### DB 인스턴스 복원 정보 조회 ```http -POST /v3.0/db-instances/{dbInstanceId}/high-availability/split +GET /v3.0/db-instances/{dbInstanceId}/restoration-info ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 데이터 스토리지 정보 보기 +### 복원될 마지막 쿼리 조회 ```http -GET /v3.0/db-instances/{dbInstanceId}/storage-info +GET /v3.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------|------|--------|--------------------------------------------------------------------------------------| -| storageType | Body | Enum | 데이터 스토리지 타입 | -| storageSize | Body | Number | 데이터 스토리지 크기(GB) | -| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- `DETACHED`: 부착되지 않음
- `ATTACHED`: 부착됨
- `DELETED`: 삭제됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| executedYmdt | Body | DateTime | 쿼리 수행 일시 | +| lastQuery | Body | String | 마지막 수행 쿼리 |
예시

@@ -1808,66 +2373,142 @@ GET /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "General SSD", - "storageSize": 20, - "storageStatus": "ATTACHED" + "executedYmdt": "2023-12-31T15:00:00+09:00", + "lastQuery": "lastQuery-example" } ```

- --- -### 데이터 스토리지 정보 수정하기 +### DB 인스턴스 복원 ```http -PUT /v3.0/db-instances/{dbInstanceId}/storage-info +POST /v3.0/db-instances/{dbInstanceId}/restore ``` -#### 요청 +#### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: 현재값
- 최댓값: `2048` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| imageId | Body | UUID | X | 이미지의 식별자 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.restoreType | Body | Enum | O | 복원 타입
- TIMESTAMP: `복원 가능한 시간 이내의 시간을 이용한 시점 복원`
- BINLOG: `복원 가능한 바이너리 로그 위치를 이용한 시점 복원`
- BACKUP: `기존에 생성한 백업을 이용한 스냅숏 복원` | +| restore.binLog.binLogFileName | Body | String | X | 복원에 사용할 바이너리 로그 이름 | +| restore.binLog.binLogPosition | Body | Object | X | 복원에 사용할 바이너리 로그 위치 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -#### 응답 +#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.restoreYmdt | Body | DateTime | X | DB 인스턴스 복원 일시 | ---- +복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. -### 백업 정보 보기 +#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) -```http -GET /v3.0/db-instances/{dbInstanceId}/backup-info -``` +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | +| restore.binLog | Body | Object | X | 복원에 사용할 바이너리 로그 정보 객체 | -#### 요청 +바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. -이 API는 요청 본문을 요구하지 않습니다. +#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "useHighAvailability": false, + "imageId": "550e8400-e29b-41d4-a716-446655440000", + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "restoreType": "TIMESTAMP", + "binLog": { + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + } + } + }, + "useDefaultNotification": false, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|---------|----------------| -| backupPeriod | Body | Number | 백업 보관 기간(일) | -| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | -| backupRetryCount | Body | Number | 백업 재시도 횟수 | -| replicationRegion | Body | Enum | 백업 복제 리전 | -| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | -| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1879,100 +2520,73 @@ GET /v3.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "backupPeriod": 1, - "ftwrlWaitTimeout": 1800, - "backupRetryCount": 0, - "replicationRegion": null, - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] + "jobId": "jobId-example" } ```

- --- -### 백업 정보 수정하기 +### DB 인스턴스 시작하기 ```http -PUT /v3.0/db-instances/{dbInstanceId}/backup-info +POST /v3.0/db-instances/{dbInstanceId}/start ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------------------------|------|---------|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

```json { - "backupPeriod": 5, - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndBgnTime": "01:00:00", - "backupWndDuration": "TWO_HOURS" - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 네트워크 정보 보기 +### DB 인스턴스 정지하기 ```http -GET /v3.0/db-instances/{dbInstanceId}/network-info +POST /v3.0/db-instances/{dbInstanceId}/stop ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------------------------------------------------------------------------------------------------------------------------------| -| availabilityZone | Body | Enum | DB 인스턴스를 생성할 가용성 영역 | -| subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | UUID | 서브넷의 식별자 | -| subnet.subnetName | Body | UUID | 서브넷을 식별할 수 있는 이름 | -| subnet.subnetCidr | Body | UUID | 서브넷의 CIDR | -| endPoints | Body | Array | 접속 정보 목록 | -| endPoints.domain | Body | String | 도메인 | -| endPoints.ipAddress | Body | String | IP 주소 | -| endPoints.endPointType | Body | Enum | 접속 정보 타입
-`EXTERNAL`: 외부 접속 도메인
-`INTERNAL`: 내부 접속 도메인
-`PUBLIC`: (Deprecated) 외부 접속 도메인
-`PRIVATE`: (Deprecated) 내부 접속 도메인 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -1984,19 +2598,7 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "kr-pub-a", - "subnet": { - "subnetId": "bd453789-34ae-416c-9f78-05b9e43a46be", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/16" - }, - "endPoints": [ - { - "domain": "ea548a78-d85f-43b4-8ddf-c88d999b9905.internal.kr1.mysql.rds.nhncloudservice.com", - "ipAddress": "192.168.0.2", - "endPointType": "INTERNAL" - } - ] + "jobId": "jobId-example" } ``` @@ -2005,55 +2607,27 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info --- -### 네트워크 정보 수정하기 - -```http -PUT /v3.0/db-instances/{dbInstanceId}/network-info -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 목록 보기 +### 스토리지 정보 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/db-users +GET /v3.0/db-instances/{dbInstanceId}/storage-info ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|-----------------------------------------------------------------------------------------------------------------------------| -| dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | -| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | -| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | -| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `UPDATING`: 수정 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbUsers.authenticationPlugin | Body | Enum | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| dbUsers.tlsOption | Body | Enum | TLS Option
- NONE
- SSL
- X509 | -| dbUsers.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbUsers.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageType | Body | Enum | 데이터 스토리지 타입 | +| storageSize | Body | Number | 데이터 스토리지 크기(GB) | +| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- DELETED: `삭제됨`
- PENDING_DELETION: `삭제 유예됨`
- DELETION_RESERVED: `삭제 예약됨 (스냅샷 정리 대기)`
- DETACHED: `해제됨`
- ATTACHED: `할당됨` |

예시

@@ -2065,19 +2639,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbUsers": [ - { - "dbUserId": "4b3d530b-fd02-4d59-a620-83d019a67bbb", - "dbUserName": "db-user", - "host": "%", - "authorityType": "DDL", - "dbUserStatus": "STABLE", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE", - "createdYmdt": "2023-03-17T14:02:29+09:00", - "updatedYmdt": "2023-03-17T14:02:31+09:00" - } - ] + "storageType": "ENUM_VALUE", + "storageSize": 1, + "storageStatus": "DELETED" } ``` @@ -2086,38 +2650,25 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users --- -### DB 사용자 생성하기 +### 스토리지 정보 수정하기 ```http -POST /v3.0/db-instances/{dbInstanceId}/db-users +PUT /v3.0/db-instances/{dbInstanceId}/storage-info ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserName | Body | String | O | DB 사용자 계정 이름
- 최소 길이: `1`
- 최대 길이: `32` | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| host | Body | String | O | DB 사용자 계정의 호스트명
- 예시: `1.1.1.%` | -| authorityType | Body | Enum | O | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- 기본값: `NATIVE`(미지원 시 `CACHING_SHA2`)
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | - -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 설정할 수 있습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최댓값: `2048` |

예시

```json { - "dbUserName": "db-user", - "dbPassword": "password", - "host": "1.1.1.%", - "authorityType": "CRUD", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE" + "storageSize": 1 } ``` @@ -2126,99 +2677,50 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 수정하기 - -```http -PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | -| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| authorityType | Body | Enum | X | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | - -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 수정할 수 있습니다. -> `authenticationPlugin`의 값은 `dbPassword`와 동시에 수정을 해야 합니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

```json { - "authorityType": "DDL" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 삭제하기 - -```http -DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +## DB 인스턴스 그룹 -### DB 스키마 목록 보기 +### DB 인스턴스 그룹 목록 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/db-schemas +GET /v3.0/db-instance-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|------------------------------------------------------------------------------------------------------| -| dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | -| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | -| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbSchemas.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2230,12 +2732,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSchemas": [ + "dbInstanceGroups": [ { - "dbSchemaId": "7c9a94b8-86c1-435d-8af2-82a5e9d53fd4", - "dbSchemaName": "schema", - "dbSchemaStatus": "STABLE", - "createdYmdt": "2023-03-20T13:37:45+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2246,75 +2745,81 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas --- -### DB 스키마 생성하기 +### DB 인스턴스 그룹 상세 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/db-schemas +GET /v3.0/db-instance-groups/{dbInstanceGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaName | Body | String | O | DB 스키마 이름 | +이 API는 요청 본문을 요구하지 않습니다. -#### 응답 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +#### 응답 ---- +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | -### DB 스키마 삭제하기 +

예시 +

-```http -DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} ``` -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 로그 파일 목록 보기 +## DB 인스턴스 사양 + +### DB 인스턴스 사양 목록 보기 ```http -GET /v3.0/db-instances/{dbInstanceId}/log-files +GET /v3.0/db-flavors ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|-------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileTypes | Query | Array | X | 로그 파일 타입 종류 목록
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| logFiles | Body | Array | 로그 파일 목록 | -| logFiles.logFileName | Body | String | 로그 파일 이름 | -| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | -| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | -| logFiles.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -2326,12 +2831,9 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files "resultMessage": "SUCCESS", "isSuccessful": true }, - "logFiles": [ + "dbFlavors": [ { - "logFileName": "xtra_full.log-20230317", - "logFileType": "BACKUP", - "logFileSize": 4096, - "createdYmdt": "2023-03-17T14:02:29+09:00" + "vcpus": 1 } ] } @@ -2342,95 +2844,65 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files --- -### 로그 파일 내보내기 +## storages + +### 스토리지 목록 보기 ```http -POST /v3.0/db-instances/{dbInstanceId}/log-files/export +GET /v3.0/storages ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|--------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileNames | Body | Array | O | 로그 파일 이름 목록
- 최소 크기: `1` | -| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storages | Body | Array | 스토리지 목록 |

예시

```json { - "logFileNames": ["xtra_full.log-20230317"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "logs/backup" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storages": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +## 네트워크 -### 백업 목록 조회 +### 서브넷 목록 보기 ```http -GET /v3.0/backups +GET /v3.0/network/subnets ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|--------|----|----------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| backupType | Query | Enum | X | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동
- 기본값: 전체 | -| dbInstanceId | Query | UUID | X | 원본 DB 인스턴스의 식별자 | -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|-----------------------------------| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | UUID | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태 | -| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형 | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |
예시

@@ -2442,19 +2914,9 @@ GET /v3.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "backups": [ + "subnets": [ { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupSize": 4996786, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" + "availableIpCount": 1 } ] } @@ -2465,168 +2927,118 @@ GET /v3.0/backups --- -### 백업 내보내기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v3.0/backups/{backupId}/export +GET /v3.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storageTypes": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - -> [주의] -> 수동 백업의 경우 백업이 수행된 DB 인스턴스가 존재하지 않으면, 백업을 오브젝트 스토리지로 내보낼 수 없습니다. - --- -### 백업 복원하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v3.0/backups/{backupId}/restore +GET /v3.0/metric-statistics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------|------|---------|----|---------------------------------------------------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Integer | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | - -
예시 -

- -```json - -{ - "dbInstanceName": "db-instance-restore", - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbPort": 10000, - "parameterGroupId": "132d383c-38e3-468a-a826-5e9a8fff15d0", - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 백업 삭제하기 +### Metric 목록 보기 ```http -DELETE /v3.0/backups/{backupId} +GET /v3.0/metrics ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "metrics": [ + { + "unit": "unit-example" + } + ] +} +``` + +

+
--- -## DB 보안 그룹 +## 백업 -### DB 보안 그룹 진행 상태 +### 백업 상태 -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | -### DB 보안 그룹 목록 보기 +### 백업 목록 조회 ```http -GET /v3.0/db-security-groups +GET /v3.0/backups ``` #### 요청 @@ -2635,15 +3047,20 @@ GET /v3.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-----------------------------------| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2655,14 +3072,10 @@ GET /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "totalCounts": 1, + "backups": [ { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2022-02-19T19:18:13+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2673,42 +3086,25 @@ GET /v3.0/db-security-groups --- -### DB 보안 그룹 상세 보기 +### 백업 삭제하기 ```http -GET /v3.0/db-security-groups/{dbSecurityGroupId} +DELETE /v3.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|----------|--------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다.
- `PORT`: 지정된 포트값으로 설정됩니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | 허용할 트래픽의 원격 소스 | -| rules.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| rules.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2720,30 +3116,7 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "rules": [ - { - "ruleId": "17c88ef6-95f1-4678-84f9-fee1b22e250d", - "description": "description", - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } - ], - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } + "jobId": "jobId-example" } ``` @@ -2752,50 +3125,33 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 생성하기 +### 백업 내보내기 ```http -POST /v3.0/db-security-groups +POST /v3.0/backups/{backupId}/export ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "rules": [ - { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0" - } - ] + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -2804,33 +3160,105 @@ POST /v3.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|------|---------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" +} +``` + +

+
--- -### DB 보안 그룹 수정하기 +### 백업 복원하기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId} +POST /v3.0/backups/{backupId}/restore ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|-----------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` |
예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } } ``` @@ -2839,7 +3267,9 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2850,33 +3280,37 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ```

- --- -### DB 보안 그룹 삭제하기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2887,7 +3321,12 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "userGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -2896,42 +3335,28 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 규칙 생성하기 +### 사용자 그룹 생성하기 ```http -POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v3.0/user-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT", - "minPort": 10000, - "maxPort": 10000 - }, - "cidr": "0.0.0.0/0" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -2940,178 +3365,74 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 보안 그룹 규칙 수정하기 - -```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleId | URL | UUID | O | DB 보안 그룹 규칙의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "DB_PORT" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "0.0.0.0/0" + "userGroupId": "userGroupId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 보안 그룹 규칙 삭제하기 - -```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|-------|----|---------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleIds | Query | Array | O | DB 보안 그룹 규칙의 식별자 목록 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 +### 사용자 그룹 삭제하기 ```http -GET /v3.0/parameter-groups +DELETE /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------|-------|------|----|----------| -| dbVersion | Query | Enum | X | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-------------------------------------------------------------------| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "parameterGroups": [ - { - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "createdYmdt": "2023-02-31T15:28:17+09:00", - "updatedYmdt": "2023-02-31T15:28:17+09:00" - } - ] -} -``` - -

-
- +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 상세 보기 +### 사용자 그룹 상세 보기 ```http -GET /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|--------------------------------------------------------------------------------------------------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | UUID | 파라미터 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- `CLIENT`: client
- `MYSQL`: mysql
- `MYSQLD`: mysqld | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- `VARIABLE`: 언제든 수정 가능
- `CONSTANT`: 수정 불가능
- `INIT_VARIABLE`: DB 인스턴스 생성 시에만 수정 가능 | -| parameters.applyType | Body | Enum | 적용 타입
- `SESSION`: 세션 적용
- `FILE`: 설정 파일 적용(재시작 필요)
- `BOTH`: 전체(재시작 필요) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3123,56 +3444,47 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "parameters": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "parameterId": "fa040b5e-f29f-46de-8f0d-bba4cb82887a", - "parameterFileGroup": "client", - "parameterName": "socket", - "fileParameterName": "socket", - "value": "/home/tcrds/db/mysql/tmp/mysql.sock", - "defaultValue": "/home/tcrds/db/mysql/tmp/mysql.sock", - "allowedValue": "", - "updateType": "CONSTANT", - "applyType": "BOTH" + "memberId": "memberId-example" } ], - "createdYmdt": "2023-03-13T11:02:28+09:00", - "updatedYmdt": "2023-03-13T11:02:28+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

- --- -### 파라미터 그룹 생성하기 +### 사용자 그룹 수정하기 ```http -POST /v3.0/parameter-groups +PUT /v3.0/user-groups/{userGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |
예시

```json { - "parameterGroupName": "parameter-group", - "dbVersion": "MYSQL_V8028" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -3181,67 +3493,86 @@ POST /v3.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 복사하기 +## 알림 그룹 + +### 알림 그룹 목록 보기 ```http -POST /v3.0/parameter-groups/{parameterGroupId}/copy +GET /v3.0/notification-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "parameterGroupName": "parameter-group-copy", - "description": "copy" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "notificationGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | - --- -### 파라미터 그룹 수정하기 +### 알림 그룹 생성하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId} +POST /v3.0/notification-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |
예시

```json { - "parameterGroupName": "parameter-group" + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], + "userGroupIds": [] } ``` @@ -3250,7 +3581,9 @@ PUT /v3.0/parameter-groups/{parameterGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3261,7 +3594,8 @@ PUT /v3.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3270,75 +3604,57 @@ PUT /v3.0/parameter-groups/{parameterGroupId} --- -### 파라미터 수정하기 +### 알림 그룹 삭제하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/parameters +DELETE /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------|------|--------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | - -

예시 -

- -```json -{ - "modifiedParameters": [ - { - "parameterId": "3abac558-7274-44e1-9f4a-f100f53f67ba", - "value": "0" - } - ] -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } -} -``` - -

-
- --- -### 파라미터 그룹 재설정하기 +### 알림 그룹 상세 보기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/reset +GET /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3349,7 +3665,24 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/reset "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ + { + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3358,48 +3691,66 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/reset --- -### 파라미터 그룹 삭제하기 +### 알림 그룹 수정하기 ```http -DELETE /v3.0/parameter-groups/{parameterGroupId} +PUT /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 사용자 그룹 +## 이벤트 -### 사용자 그룹 목록 보기 +### 이벤트 카테고리 + +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. + +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | + +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v3.0/user-groups +GET /v3.0/event-codes ``` #### 요청 @@ -3408,13 +3759,11 @@ GET /v3.0/user-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|-----------------------------------| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |
예시

@@ -3426,12 +3775,9 @@ GET /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "eventCodes": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "eventCategoryType": "ALL" } ] } @@ -3442,31 +3788,30 @@ GET /v3.0/user-groups --- -### 사용자 그룹 상세 보기 +### 이벤트 목록 조회 ```http -GET /v3.0/user-groups/{userGroupId} +GET /v3.0/events ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|----------|-----------------------------------------------------------------------------------------------------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
`ENTIRE`: 프로젝트 멤버 전체를 포함하는 사용자 그룹
`INDIVIDUAL_MEMBER`: 특정 프로젝트 멤버를 포함하는 사용자 그룹 | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

@@ -3478,16 +3823,12 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "userGroupTypeCode": "INDIVIDUAL_MEMBER", - "members": [ + "totalCounts": 1, + "events": [ { - "memberId": "1321e759-2ef3-4b85-9921-b13e918b24b5" + "eventYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + ] } ``` @@ -3496,75 +3837,99 @@ GET /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 생성하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v3.0/user-groups +GET /v3.0/event-subscriptions ``` -#### 요청 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|-------------------------------------------------------------| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록
`selectAllYN`이 true인 경우 해당 필드 값은 무시됨 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |

예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } ] } ``` -```json -{ - "userGroupName": "dev-team", - "selectAllYN":true -} -``` -

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------------|------|------|-------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | - --- -### 사용자 그룹 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v3.0/user-groups/{userGroupId} +POST /v3.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|----------------------------------------------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | -| userGroupName | Body | String | X | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5", - "f9064b09-2b15-442e-a4b0-3a5a2754555e" - ] + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ``` @@ -3573,7 +3938,9 @@ PUT /v3.0/user-groups/{userGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -3584,7 +3951,8 @@ PUT /v3.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -3593,64 +3961,121 @@ PUT /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 삭제하기 +### 이벤트 구독 삭제하기 ```http -DELETE /v3.0/user-groups/{userGroupId} +DELETE /v3.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v3.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 알림 그룹 +## 작업 정보 -### 알림 그룹 목록 보기 +### 작업 상태 + +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 ```http -GET /v3.0/notification-groups +GET /v3.0/jobs/{jobId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------------|------|----------|-----------------------------------| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3662,17 +4087,15 @@ GET /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ { - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "resourceId": "resourceId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3681,37 +4104,30 @@ GET /v3.0/notification-groups --- -### 알림 그룹 상세 보기 +## 파라미터 그룹 + +### 파라미터 그룹 목록 보기 ```http -GET /v3.0/notification-groups/{notificationGroupId} +GET /v3.0/parameter-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------------|------|----------|-----------------------------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3723,25 +4139,11 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "dbInstances": [ - { - "dbInstanceId": "ed5cb985-526f-4c54-9ae0-40288593de65", - "dbInstanceName": "database" - } - ], - "userGroups": [ + "parameterGroups": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + ] } ``` @@ -3750,37 +4152,28 @@ GET /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v3.0/notification-groups +POST /v3.0/parameter-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------------| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "notificationGroupName": "dev-team-noti", - "notifyEmail": false, - "isEnable": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65" - ], - "userGroupIds": [ - "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0" - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -3789,49 +4182,84 @@ POST /v3.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|------|------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "parameterGroupId": "parameterGroupId-example" +} +``` + +

+
--- -### 알림 그룹 수정하기 +### 파라미터 그룹 삭제하기 ```http -PUT /v3.0/notification-groups/{notificationGroupId} +DELETE /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부 | -| notifySms | Body | Boolean | X | SMS 알림 여부 | -| isEnabled | Body | Boolean | X | 활성화 여부 | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +이 API는 요청 본문을 요구하지 않습니다. -
예시 -

+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -```json -{ - "notifyEmail": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65", - "d51b7da0-682f-47ff-b588-b739f6adc740" - ] -} +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 파라미터 그룹 상세 보기 + +```http +GET /v3.0/parameter-groups/{parameterGroupId} ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3842,7 +4270,19 @@ PUT /v3.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ + { + "applyType": "BOTH" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3851,61 +4291,71 @@ PUT /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 수정하기 ```http -DELETE /v3.0/notification-groups/{notificationGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 모니터링 +이 API는 응답 본문을 반환하지 않습니다. -### Metric 목록 보기 +--- + +### 파라미터 그룹 복사하기 ```http -GET /v3.0/metrics +POST /v3.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|--------|-----------| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | Enum | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -3917,12 +4367,7 @@ GET /v3.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "measureName": "CPU_USAGE", - "unit": "%" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3931,56 +4376,29 @@ GET /v3.0/metrics --- -### 통계 정보 조회 +### 파라미터 수정하기 ```http -GET /v3.0/metric-statistics +PUT /v3.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|----------|----|-----------------------------------| -| dbInstanceId | Query | UUID | O | DB 인스턴스의 식별자 | -| measureNames | Query | Array | O | 조회 지표 목록
- 최소 크기: `1` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| interval | Query | Number | X | 조회 간격 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|-----------|----------| -| metricStatistics | Body | Array | 통계 정보 목록 | -| metricStatistics.measureName | Body | Enum | 측정 항목 유형 | -| metricStatistics.unit | Body | String | 측정값 단위 | -| metricStatistics.values | Body | Array | 측정값 목록 | -| metricStatistics.values.timestamp | Body | Timestamp | 측정 시간 | -| metricStatistics.values.value | Body | Object | 측정값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "metricStatistics": [ + "modifiedParameters": [ { - "measureName": "MYSQL_STATUS", - "unit": "", - "values": [ - [ - 1679298540, - "1" - ], - [ - 1679298600, - "1" - ], - [ - 1679298660, - "1" - ] - ] + "value": "value-example" } ] } @@ -3989,58 +4407,53 @@ GET /v3.0/metric-statistics

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 +### 파라미터 그룹 재설정하기 -### 이벤트 카테고리 +```http +PUT /v3.0/parameter-groups/{parameterGroupId}/reset +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 이벤트 목록 조회 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 프로젝트 정보 + +### 프로젝트 멤버 목록 보기 ```http -GET /v3.0/events +GET /v3.0/project/members ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| eventCategoryType | Query | Enum | O | 조회할 이벤트 카테고리 유형
- `ALL`: 전체
- `INSTANCE`: DB 인스턴스
- `BACKUP`: 백업
- `DB_SECURITY_GROUP`: DB 보안 그룹
- `TENANT`: 테넌트 | -| sourceId | Query | String | X | 이벤트가 발생한 대상 리소스의 식별자 | -| keyword | Query | String | X | 이벤트 메시지에 포함된 문자열 검색어 | -| ascendingOrder | Query | Enum | X | 이벤트 메시지 정렬 순서
- `ASC`: 오름차순
- `DESC`: 내림차순
- 기본값: `DESC` | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|---------------------------------------| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메시지 목록 | -| events.messages.langCode | Body | String | 언어 코드 | -| events.messages.message | Body | String | 이벤트 메시지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -4052,32 +4465,9 @@ GET /v3.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 28, - "events": [ + "members": [ { - "eventCategoryType": "INSTANCE", - "eventCode": "INSTC_02_01", - "sourceId": "76f00947-356e-4a20-8922-428368cc45ed", - "sourceName": "db-instance", - "messages": [ - { - "langCode": "EN", - "message": "DB instance started" - }, - { - "langCode": "JA", - "message": "DBインスタンスの起動" - }, - { - "langCode": "KO", - "message": "DB 인스턴스 시작" - }, - { - "langCode": "ZH", - "message": "DB instance started" - } - ], - "eventYmdt": "2023-03-20T16:31:59+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -4088,10 +4478,10 @@ GET /v3.0/events --- -### 구독 가능한 이벤트 코드 목록 보기 +### 리전 목록 보기 ```http -GET /v3.0/event-codes +GET /v3.0/project/regions ``` #### 요청 @@ -4100,11 +4490,11 @@ GET /v3.0/event-codes #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|-------|-------------| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

@@ -4116,10 +4506,9 @@ GET /v3.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "regions": [ { - "eventCode": "INSTC_05_01", - "eventCategoryType": "INSTANCE" + "isEnabled": false } ] } @@ -4129,3 +4518,4 @@ GET /v3.0/event-codes

--- + diff --git a/ko/api-guide-v4.0-gov.md b/ko/api-guide-v4.0-gov.md index 7f5f56f6..8d753653 100644 --- a/ko/api-guide-v4.0-gov.md +++ b/ko/api-guide-v4.0-gov.md @@ -2,36 +2,29 @@ ## RDS for MySQL API 공통 정보 -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|-----------|-----------------------------------------------| -| 한국(판교) 리전 | https://kr1-rds-mysql.api.gov-nhncloudservice.com | - ### 인증 및 권한 RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. 발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|--------|--------|----|-------------------------------------------------------------| -| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | +| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. -또한 프로젝트 멤버 역할에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER`로 구분하여 권한을 부여할 수 있습니다. - -* `RDS for MySQL ADMIN` 권한은 모든 기능을 사용 가능합니다. -* `RDS for MySQL VIEWER` 권한은 정보를 조회하는 기능만 사용 가능합니다. +* `RDS for MySQL ADMIN` 역할은 API 실행에 필요한 모든 권한이 부여됩니다. +* `RDS for MySQL VIEWER` 역할은 정보를 조회하는 권한만 부여됩니다. * DB 인스턴스를 생성, 수정, 삭제하거나, DB 인스턴스를 대상으로 하는 어떠한 기능도 사용할 수 없습니다. - * 단, 알림 그룹 및 사용자 그룹 관련 기능은 사용 가능합니다. + * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용할 수 있습니다. API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같은 오류가 발생합니다. -| resultCode | resultMessage | 설명 | -|------------|---------------|-------------| -| 80401 | Unauthorized | 인증에 실패했습니다. | -| 80403 | Forbidden | 권한이 없습니다. | +| resultCode | resultMessage | 설명 | +|------------|---------------|-----| +| 80401 | Unauthorized | 인증에 실패했습니다. | +| 80403 | Forbidden | 권한이 없습니다. | ### 응답 공통 정보 @@ -49,59 +42,67 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 ``` #### 필드 -| 이름 | 형식 | 설명 | -|---------------|---------|-----------------------------------------| -| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | -| resultMessage | String | 결과 메시지 | -| isSuccessful | Boolean | 성공 여부 | +| 이름 | 형식 | 설명 | +|-----|-----|-----| +| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | +| resultMessage | String | 결과 메시지 | +| isSuccessful | Boolean | 성공 여부 | + +### API 엔드포인트 +| 리전 | 엔드포인트 | +|------|----------| +| 한국(판교) 리전 | https://kr1-rds-mysql.api.gov-nhncloudservice.com | ### DB 엔진 유형 -| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | -|--------------|----------|-----------------|--------| -| MYSQL\_V5633 | X | X | NATIVE | -| MYSQL\_V5715 | O | O | NATIVE | -| MYSQL\_V5719 | O | O | NATIVE | -| MYSQL\_V5726 | O | O | NATIVE | -| MYSQL\_V5731 | X | X | NATIVE | -| MYSQL\_V5733 | O | X | NATIVE, SHA256 | -| MYSQL\_V5737 | O | O | NATIVE, SHA256 | -| MYSQL\_V8018 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8023 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8028 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8032 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8033 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8034 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8405 | O | O | CACHING_SHA2 | -| MYSQL_V8406 | O | O | CACHING_SHA2 | -| MYSQL_V8407 | O | O | CACHING_SHA2 | -| MYSQL_V8408 | O | O | CACHING_SHA2 | - -* ENUM 타입의 dbVersion 필드에서 해당 값을 사용할 수 있습니다. +| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | +|------------|----------|------------------|------------| +| MYSQL_V5633 | X | X | NATIVE | +| MYSQL_V5715 | O | O | NATIVE | +| MYSQL_V5719 | O | O | NATIVE | +| MYSQL_V5726 | O | O | NATIVE | +| MYSQL_V5731 | X | X | NATIVE | +| MYSQL_V5733 | O | X | NATIVE, SHA256 | +| MYSQL_V5737 | O | O | NATIVE, SHA256 | +| MYSQL_V8018 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8023 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8028 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8032 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8033 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8034 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8405 | O | O | CACHING_SHA2 | +| MYSQL_V8406 | O | O | CACHING_SHA2 | +| MYSQL_V8407 | O | O | CACHING_SHA2 | +| MYSQL_V8408 | O | O | CACHING_SHA2 | + +* ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## 프로젝트 정보 +## DB 보안 그룹 -### 리전 목록 보기 +### DB 보안 그룹 진행 상태 -```http -GET /v4.0/project/regions -``` +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | -#### 필요 권한 +### DB 보안 그룹 목록 보기 -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMySQL:Project.Get | 프로젝트 정보 조회 | +```http +GET /v4.0/db-security-groups +``` #### 요청 @@ -109,11 +110,16 @@ GET /v4.0/project/regions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------|------|---------|----------------------------------------------------------------------------| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -125,69 +131,52 @@ GET /v4.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ - { - "regionCode": "KR1", - "isEnabled": true - }, - { - "regionCode": "KR2", - "isEnabled": true - }, + "totalCounts": 1, + "dbSecurityGroups": [ { - "regionCode": "JP1", - "isEnabled": true + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } ``` +

--- -### 프로젝트 멤버 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v4.0/project/members +POST /v4.0/db-security-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMySQL:Project.Get | 프로젝트 정보 조회 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|--------|-----------------| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ { - "memberId": "1b1d3627-507a-49ea-8cb7-c86dfa9caa58", - "memberName": "홍길동", - "emailAddress": "gildong.hong@nhn.com", - "phoneNumber": "+821012345678" + "description": "description-example" } ] } @@ -196,35 +185,11 @@ GET /v4.0/project/members

---- - -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 - -```http -GET /v4.0/db-flavors -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|------------------| -| RDSforMySQL:DbFlavor.List | DB 인스턴스 사양 목록 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -236,14 +201,7 @@ GET /v4.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbFlavorName": "m2.c1m2", - "ram": 2048, - "vcpus": 1 - } - ] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -252,34 +210,62 @@ GET /v4.0/db-flavors --- -## 네트워크 - -### 서브넷 목록 보기 +### DB 보안 그룹 삭제하기 ```http -GET /v4.0/network/subnets +DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- -| 권한명 | 설명 | -|------------------------------------------|-----------| -| RDSforMySQL:Network.List | 서브넷 목록 보기 | +### DB 보안 그룹 상세 보기 + +```http +GET /v4.0/db-security-groups/{dbSecurityGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|---------|------------------| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | UUID | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| rules | Body | Array | DB 보안 그룹 규칙 목록 | +| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | 포트 객체 | +| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | 최소 포트 범위 | +| rules.port.maxPort | Body | Number | 최대 포트 범위 | +| rules.cidr | Body | String | CIDR | +| rules.createdYmdt | Body | DateTime | 생성 일시 | +| rules.updatedYmdt | Body | DateTime | 수정 일시 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -291,15 +277,17 @@ GET /v4.0/network/subnets "resultMessage": "SUCCESS", "isSuccessful": true }, - "subnets": [ + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ { - "subnetId": "1b2a9b23-0725-4b92-8c78-35db66b8ad9f", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/24", - "usingGateway": true, - "availableIpCount": 240 + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -308,81 +296,59 @@ GET /v4.0/network/subnets --- -## DB 엔진 - -### DB 엔진 목록 보기 +### DB 보안 그룹 수정하기 ```http -GET /v4.0/db-versions +PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|-------------| -| RDSforMySQL:DbVersion.List | DB 엔진 목록 보기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|---------|-----------------------| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "dbVersions": [ - { - "dbVersion": "MYSQL_V8028", - "dbVersionName": "MySQL 8.0.28", - "restorableFromObs": true - } - ] + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 데이터 스토리지 +이 API는 응답 본문을 반환하지 않습니다. + +--- -### 데이터 스토리지 타입 목록 보기 +### DB 보안 그룹 규칙 삭제하기 ```http -GET /v4.0/storage-types +DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------|-------------------| -| RDSforMySQL:Storage.List | 데이터 스토리지 타입 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|-------|----------------| -| storageTypes | Body | Array | 데이터 스토리지 타입 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -394,10 +360,7 @@ GET /v4.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [ - "General SSD", - "General HDD" - ] + "jobId": "jobId-example" } ``` @@ -406,56 +369,51 @@ GET /v4.0/storage-types --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### DB 보안 그룹 규칙 생성하기 ```http -GET /v4.0/jobs/{jobId} +POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------|-------------| -| RDSforMySQL:Job.Get | 작업 정보 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------|-----|------|----|---------| -| jobId | URL | UUID | O | 작업의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------|------|----------|-----------------------------------| -| jobId | Body | UUID | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태 | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | Enum | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | UUID | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -467,16 +425,7 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "0ddb042c-5af6-43fb-a914-f4dd0540eb7c", - "jobStatus": "RUNNING", - "resourceRelations": [ - { - "resourceType": "DB_INSTANCE", - "resourceId": "56b39dcf-65eb-47ec-9d4f-09f160ba2266" - } - ], - "createdYmdt": "2023-02-22T20:47:12+09:00", - "updatedYmdt": "2023-02-22T20:49:46+09:00" + "jobId": "jobId-example" } ``` @@ -485,33 +434,52 @@ GET /v4.0/jobs/{jobId} --- -## DB 인스턴스 그룹 - -### DB 인스턴스 그룹 목록 보기 +### DB 보안 그룹 규칙 수정하기 ```http -GET /v4.0/db-instance-groups +PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|--------------------------------------------------|------------------| -| RDSforMySQL:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------|------|----------|--------------------------------------------------------------------------| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -523,14 +491,7 @@ GET /v4.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ - { - "dbInstanceGroupId": "05de0746-89fd-49c8-94f9-9c5b1df97009", - "replicationType": "STANDALONE", - "createdYmdt": "2023-02-13T17:35:20+09:00", - "updatedYmdt": "2023-02-13T17:35:20+09:00" - } - ] + "jobId": "jobId-example" } ``` @@ -539,38 +500,26 @@ GET /v4.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v4.0/db-instance-groups/{dbInstanceGroupId} +GET /v4.0/db-versions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|------------------| -| RDSforMySQL:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|-----------------| -| dbInstanceGroupId | URL | UUID | O | DB 인스턴스 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |

예시

@@ -582,17 +531,11 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "36617a8e-0df8-4b16-b6ea-6306019e95da", - "replicationType": "STANDALONE", - "dbInstances": [ + "dbVersions": [ { - "dbInstanceId": "6d2db0ef-fe9b-4ed4-97b1-d97fcb4cf1b8", - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE" + "restorableFromObs": false } - ], - "createdYmdt": "2023-03-03T17:38:14+09:00", - "updatedYmdt": "2023-03-03T17:38:14+09:00" + ] } ``` @@ -625,8 +568,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `BACKING_UP` | 백업 중 | | `CANCELING` | 취소 중 | | `CREATING` | 생성 중 | -| `CREATING_SCHEMA` | DB 스키마 생성 중 | -| `CREATING_USER` | 사용자 생성 중 | +| `CREATING_SCHEMA` | DB 스키마 생성 중 | +| `CREATING_USER` | 사용자 생성 중 | | `DELETING` | 삭제 중 | | `DELETING_SCHEMA` | DB 스키마 삭제 중 | | `DELETING_USER` | 사용자 삭제 중 | @@ -645,8 +588,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `STARTING` | 시작 중 | | `STOPPING` | 정지 중 | | `SYNCING_SCHEMA` | DB 스키마 동기화 중 | -| `SYNCING_USER` | 사용자 동기화 중 | -| `UPDATING_USER` | 사용자 수정 중 | +| `SYNCING_USER` | 사용자 동기화 중 | +| `UPDATING_USER` | 사용자 수정 중 | ### DB 인스턴스 목록 보기 @@ -654,32 +597,26 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|---------------| -| RDSforMySQL:DbInstance.List | DB 인스턴스 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | -| dbInstances.dbPort | Body | Number | DB 포트 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태 | -| dbInstances.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstances.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstances | Body | Array | DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | +| dbInstances.dbPort | Body | Number | DB 포트 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbInstances.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstances.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -693,17 +630,7 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "createdYmdt": "2023-01-23T12:03:13+09:00", - "updatedYmdt": "2023-02-02T17:20:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -714,51 +641,123 @@ GET /v4.0/db-instances --- -### DB 인스턴스 상세 보기 +### DB 인스턴스 생성하기 ```http -GET /v4.0/db-instances/{dbInstanceId} +POST /v4.0/db-instances ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| authenticationPlugin | Body | Enum | X | 인증 Plugin
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | TLS Option
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE", + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| dbPort | Body | Number | DB 포트 | -| dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| progressStatus | Body | Enum | DB 인스턴스의 현재 작업 진행 상태 | -| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | -| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | -| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | -| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | -| supportAuthenticationPlugin | Body | Boolean | 인증 플러그인 지원 여부 | -| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | -| needMigration | Body | Boolean | 마이그레이션 필요 여부 | -| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -770,27 +769,599 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "dbFlavorId": "e9ed4ef6-78d7-46fa-ace9-32481e97f3b7", - "parameterGroupId": "b03e8b13-de27-4d04-a488-ff5689589372", - "dbSecurityGroupIds": ["01908c35-d2c9-4852-baf0-17f06ec42c03"], - "notificationGroupIds": ["83a62a33-ddbf-4a04-8653-e54463d5b1ac"], - "useDeletionProtection": false, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 오브젝트 스토리지를 이용한 DB 인스턴스 복원 + +```http +POST /v4.0/db-instances/restore-from-obs +``` + +#### 공통 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | +| restore.username | Body | String | O | NHN Cloud 계정 혹은 IAM 멤버 ID | +| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | +| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | +| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "dbVersion": "ENUM_VALUE", + "useHighAvailability": false, + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" + }, + "useDefaultNotification": false, "useSlowQueryAnalysis": true, - "supportAuthenticationPlugin": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 인스턴스 삭제하기 + +```http +DELETE /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| deleteAutoBackup | Body | Boolean | X | 자동 백업 삭제 여부
- 기본값: `false` | + +
예시 +

+ +```json +{ + "deleteAutoBackup": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 인스턴스 상세 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| dbPort | Body | Number | DB 포트 | +| dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | +| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | +| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | +| supportAuthenticationPlugin | Body | Boolean | 인증 plugin 지원 여부 | +| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | +| needMigration | Body | Boolean | 마이그레이션 필요 여부 | +| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "dbFlavorId": "dbFlavorId-example", + "parameterGroupId": "parameterGroupId-example", + "dbSecurityGroupIds": [], + "notificationGroupIds": [], + "useDeletionProtection": false, + "useSlowQueryAnalysis": false, + "supportAuthenticationPlugin": false, "needToApplyParameterGroup": false, "needMigration": false, - "supportDbVersionUpgrade": true, - "createdYmdt": "2022-11-23T12:03:13+09:00", - "updatedYmdt": "2022-12-02T17:20:17+09:00" + "supportDbVersionUpgrade": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ +--- + +### DB 인스턴스 수정하기 + +```http +PUT /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbVersion | Body | Enum | X | DB 엔진 버전 코드 | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | +| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
- 기본값: `false` | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbPort": 1, + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "useSlowQueryAnalysis": false, + "useDummy": false, + "dbSecurityGroupIds": [], + "executeBackup": false, + "useOnlineFailover": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 백업 정보 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backupPeriod | Body | Number | 백업 보관 기간(일) | +| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | +| backupRetryCount | Body | Number | 백업 재시도 횟수 | +| replicationRegion | Body | Enum | 백업 복제 리전
- KR1: `한국(판교)` | +| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration
- HALF_AN_HOUR
- ONE_HOUR
- ONE_HOUR_AND_HALF
- TWO_HOURS
- TWO_HOURS_AND_HALF
- THREE_HOURS | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "backupPeriod": 1, + "ftwrlWaitTimeout": 1, + "backupRetryCount": 1, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +--- + +### 백업 정보 수정하기 + +```http +PUT /v4.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +
예시 +

+ +```json +{ + "backupPeriod": 0, + "ftwrlWaitTimeout": 0, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 바이너리 로그 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/binlogs +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| binLogs | Body | Array | BinLog 파일 목록 | +| binLogs.binLogFileName | Body | String | BinLog 파일 이름 | +| binLogs.binLogFileSize | Body | Number | BinLog 파일 크기 (Byte) | +| binLogs.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "binLogs": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### 바이너리 로그 삭제 + +```http +POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| lastBinLogFileName | Body | String | O | 삭제할 마지막 BinLog 파일 이름 (해당 파일 직전까지 삭제됨) | + +
예시 +

+ +```json +{ + "lastBinLogFileName": "mysql-bin.000010" +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 인증서 파일 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/certificates +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| certificates | Body | Array | 인증서 파일 목록 | +| certificates.fileName | Body | String | 인증서 파일 이름 | +| certificates.certificateType | Body | Enum | 인증서 타입
- CA_FILE
- CERT_FILE
- KEY_FILE | +| certificates.fileSize | Body | Number | 인증서 파일 크기(Byte) | +| certificates.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "certificates": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -799,97 +1370,35 @@ GET /v4.0/db-instances/{dbInstanceId} --- -### DB 인스턴스 생성하기 +### 인증서 파일 내보내기 ```http -POST /v4.0/db-instances +POST /v4.0/db-instances/{dbInstanceId}/certificates/upload ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Create | DB 인스턴스 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|-------|---------|----|---------------------------------------------------------------------| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbUserName | Body | String | O | DB 사용자 계정명 | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- 기본값: `NATIVE`(미지원 시 `CACHING_SHA2`)
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| certificateTypes | Body | Array | O | 업로드할 인증서 타입 목록 | +| tenantId | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 인증서 파일의 경로 |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR" - } - ] - } + "certificateTypes": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -898,149 +1407,194 @@ POST /v4.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 수정하기 +### DB 스키마 목록 보기 ```http -PUT /v4.0/db-instances/{dbInstanceId} +GET /v4.0/db-instances/{dbInstanceId}/db-schemas ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|---------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbPort | Body | Number | X | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbVersion | Body | Enum | X | DB 엔진 유형 | -| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| useReadOnly | Body | Boolean | X | 읽기 전용으로 변경 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSchemas | Body | Array | DB 스키마 목록 | +| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | +| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | +| dbSchemas.createdYmdt | Body | DateTime | 생성 일시 |
예시

```json { - "dbInstanceName": "db-instance2", - "description": "description2", - "dbPort": 10001, - "dbSecurityGroupIds": [], - "executeBackup": true + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbSchemas": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 삭제하기 +### DB 스키마 생성하기 ```http -DELETE /v4.0/db-instances/{dbInstanceId} +POST /v4.0/db-instances/{dbInstanceId}/db-schemas ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Delete | DB 인스턴스 삭제하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaName | Body | String | O | DB 스키마 이름
- 최대 길이: `64`
- 영문 시작, 영문/숫자/_ 허용, 1~64자, MySQL 예약어 불가 | -#### 요청 +
예시 +

+ +```json +{ + "dbSchemaName": "dbSchemaName-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| deleteAutoBackup | Body | Boolean | X | 자동 백업 삭제 여부
- 기본값: `false` | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 재시작하기 +### DB 스키마 삭제하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/restart +DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Restart | DB 인스턴스 재시작하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| useReadOnly | Body | Boolean | X | 읽기 전용으로 변경 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- -### DB 인스턴스 강제 재시작하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/force-restart +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} ``` -#### 필요 권한 +

+
-| 권한명 | 설명 | -|-----------------------------------------------------|------------------| -| RDSforMySQL:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | +--- -#### 요청 +### DB 사용자 목록 보기 -이 API는 요청 본문을 요구하지 않습니다. +```http +GET /v4.0/db-instances/{dbInstanceId}/db-users +``` +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbUsers | Body | Array | DB 사용자 목록 | +| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | +| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | +| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- STABLE
- CREATING
- UPDATING
- SYNCING
- DELETING
- DELETED | +| dbUsers.createdYmdt | Body | DateTime | 생성 일시 | +| dbUsers.updatedYmdt | Body | DateTime | 수정 일시 | +| dbUsers.authenticationPlugin | Body | Enum | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| dbUsers.tlsOption | Body | Enum | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |
예시

@@ -1051,134 +1605,146 @@ POST /v4.0/db-instances/{dbInstanceId}/force-restart "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "dbUsers": [ + { + "tlsOption": "NONE" + } + ] } ```

- --- -### DB 인스턴스 시작하기 +### DB 사용자 생성하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/start +POST /v4.0/db-instances/{dbInstanceId}/db-users ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Start | DB 인스턴스 시작하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| host | Body | String | O | DB 사용자 계정의 호스트명
- 최대 길이: `45` | +| authorityType | Body | Enum | O | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "host": "host-example", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 정지하기 +### DB 사용자 삭제하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/stop +DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Stop | DB 인스턴스 정지하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 복제하기 +### DB 사용자 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/replicate +PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Replicate | DB 인스턴스 복제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록
- 기본값: 원본 DB 인스턴스 값 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: 원본 DB 인스턴스 값 | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 기본값: 원본 DB 인스턴스 값
- 예시: `General SSD` | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전
- 기본값: 원본 DB 인스턴스 값 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00`
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간
- 기본값: 원본 DB 인스턴스 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | +| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| authorityType | Body | Enum | X | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |
예시

```json { - "dbInstanceName": "db-instance-replicate", - "description": "description", - "dbPort": 11000, - "network": { - "availabilityZone": "kr-pub-a" - }, - "storage": { - "stroageSize": 100 - } + "dbPassword": "dbPassword", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" } ``` @@ -1187,147 +1753,117 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 승격하기 +### DB 인스턴스 삭제 보호 설정 변경 ```http -POST /v4.0/db-instances/{dbInstanceId}/promote +PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Promote | DB 인스턴스 승격하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 재구축하기 +### DB 인스턴스 강제 재시작하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/rebuild +POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Rebuild | DB 인스턴스 재구축하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 복원 정보 조회 +### 고가용성 정보 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info +GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | -| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | -| restorableBackups | Body | Array | 복원 가능한 백업 목록 | -| restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | -| restorableBackups.backup.backupName | Body | String | 백업 이름 | -| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | -| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동 | -| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- `BACKING_UP`: 백업 중인 경우
- `COMPLETED`: 백업이 완료된 경우
- `DELETING`: 백업이 삭제 중인 경우
- `DELETED`: 백업이 삭제된 경우
- `ERROR`: 오류가 발생한 경우 | -| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| restorableBackups.backup.dbVersion | Body | String | DB 엔진 유형 | -| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | -| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| restorableBackups.backup.binLogPosition | Body | Number | 바이너리 로그 파일 위치 | -| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | -| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | -| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| useHighAvailability | Body | Boolean | 고가용성 사용 여부
- 기본값: `false` | +| haStatus | Body | Enum | 고가용성 상태
- CREATED: `생성됨`
- STABLE: `정상`
- PAUSING: `일시 중지 중`
- DISABLE: `정지`
- DISABLE_MASTER_IN_REPLICATION: `마스터 비정상 복제 감지로 인한 고가용성 중단`
- DISABLE_MHA_PROCESS: `고가용성 프로세스 중단`
- DISABLE_REPLICATION_STOP: `복제 중단으로 인한 고가용성 중단`
- DISABLE_REPLICATION_DELAY: `복제 지연으로 인한 고가용성 중단`
- FAILOVER_STARTED: `장애 조치 시작`
- FAILOVER_FAILED: `장애 조치 실패`
- FAILOVER_COMPLETED: `장애 조치 완료`
- DELETED: `삭제됨`
- PAUSED: `일시 중지`
- PAUSED_DUE_TO_TASK: `작업으로 인한 일시 중지`
- MASTER_FAILURE_DETECTION: `마스터 장애 감지` | +| pingInterval | Body | Number | Ping 간격(초) | +| pingType | Body | String | Ping 방식 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "oldestRestorableYmdt": "2023-07-09T16:33:33+09:00", - "latestRestorableYmdt": "2023-07-10T15:44:44+09:00", - "restorableBackups": [ - { - "backup": { - "backupId": "145d889a-fe08-474f-8f58-bde576ff96a9", - "backupName": "example-backup-name", - "backupStatus": "COMPLETED", - "dbInstanceId": "dba1be25-9429-4589-9716-7fb6daad7cb9", - "dbInstanceName": "original-db-instance-name", - "dbVersion": "MYSQL_V8028", - "backupType": "MANUAL", - "backupSize": 8299904, - "useBackupLock": true, - "failoverCount": 0, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 367916037, - "createdYmdt": "2023-07-10T15:44:44+09:00", - "updatedYmdt": "2023-07-10T15:46:07+09:00" - }, - "restorableBinLogs": [ - "mysql-bin.000001" - ] - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "useHighAvailability": false, + "haStatus": "CREATED", + "pingInterval": 1, + "pingType": "pingType-example" } ``` @@ -1336,45 +1872,44 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info --- -### 복원될 마지막 쿼리 조회 +### 고가용성 수정하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query +PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|------|----|-----------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restoreType | Query | Enum | O | 복원 타입 종류
- `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
- `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | + +#### 고가용성 사용 시 -#### restoreType이 `TIMESTAMP`인 경우 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-------|----------|----|-------------------------------------------| -| restoreYmdt | Query | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +

예시 +

-#### restoreType이 `BINLOG`인 경우 +```json +{ + "useHighAvailability": false, + "pingInterval": 1 +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------|-------|--------|----|--------------------| -| backupId | Query | UUID | O | 복원에 사용할 백업의 식별자 | -| binLogFileName | Query | String | O | 복원에 사용할 바이너리 로그 이름 | -| binLogPosition | Query | Number | O | 복원에 사용할 바이너리 로그 위치 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|----------|--------------------------------------| -| executedYmdt | Body | DateTime | 쿼리 수행 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| lastQuery | Body | String | 마지막 수행 쿼리 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -1386,8 +1921,7 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query "resultMessage": "SUCCESS", "isSuccessful": true }, - "executedYmdt": "2023-03-17T14:02:29+09:00", - "lastQuery": "INSERT INTO `test`.`test`SET @1='0123'" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1396,368 +1930,142 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query --- -### 복원 +### 고가용성 일시 중지하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/restore +POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Restore | DB 인스턴스 복원하기 | - -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restore | Body | Object | O | 복원 정보 객체 | -| restore.restoreType | Body | Enum | O | 복원 타입 종류
- `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
- `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
- `BACKUP`: 기존에 생성한 백업을 이용한 스냅숏 복원 타입 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 고가용성 사용 시 필수 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a`
- 기본값: 랜덤 선택 | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 예시: `General SSD`
- 기본값: 원본 DB 인스턴스 값 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +이 API는 요청 본문을 요구하지 않습니다. -#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|----------|----|------------------------------------------------------------------------------------------------| -| restore.restoreYmdt | Body | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD)
복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "TIMESTAMP", - "restoreYmdt": "2023-07-10T15:44:44+09:00" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------------|------|--------|----|--------------------| -| restore.backupId | Body | UUID | O | 복원에 사용할 백업의 식별자 | -| restore.binLog | Body | Object | O | 바이너리 로그 정보 객체 | -| restore.binLog.binLogFileName | Body | String | O | 복원에 사용할 바이너리 로그 이름 | -| restore.binLog.binLogPosition | Body | Number | O | 복원에 사용할 바이너리 로그 위치 | - -* 바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그를 복원할 수 있습니다. - +--- -
예시 -

+### 고가용성 복구하기 -```json -{ - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BINLOG", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36", - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 1234567 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } -} +```http +POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` -

-
+#### 요청 -#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|------|------------------------------|-----------------| -| restore.backupId | Body | UUID | O(restoreType이 `BACKUP`인 경우) | 복원에 사용할 백업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BACKUP", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - - --- -### 오브젝트 스토리지로부터 복원 +### 고가용성 다시 시작하기 ```http -POST /v4.0/db-instances/restore-from-obs +POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------------|-------------------------| -| RDSforMySQL:DbInstance.RestoreFromObs | DB 인스턴스 오브젝트 스토리지로부터 복원 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|----------------------------------------------------------------------------------------| -| restore | Body | Object | O | 복원 정보 객체 | -| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | -| restore.username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | -| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | -| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbVersion": "MYSQL_V8028", - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "tenantId":"tenant-id", - "username":"username", - "password":"password", - "targetContainer":"targetContainer", - "objectPath":"objectPath" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - - --- - -### DB 인스턴스 삭제 보호 설정 변경하기 +### 고가용성 분리하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection +POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -1768,7 +2076,8 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1777,58 +2086,31 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection --- -### 고가용성 상태 - -| 상태 | 설명 | -|----------------------------------|---------------------------------| -| `CREATED` | 고가용성이 생성된 경우 | -| `STABLE` | 고가용성이 정상인 경우 | -| `PAUSING` | 고가용성이 일시 중지 중인 경우 | -| `PAUSED` | 고가용성이 일시 중지된 경우 | -| `PAUSED_DUE_TO_TASK` | 작업으로 인해 고가용성이 일시 중지된 경우 | -| `DISABLE_MASTER_IN_REPLICATION` | 마스터 비정상 복제 감지로 고가용성이 중단된 경우 | -| `DISABLE_MHA_PROCESS` | 고가용성 프로세스가 중단된 경우 | -| `DISABLE_REPLICATION_STOP` | 복제 중단으로 인해 고가용성이 중단된 경우 | -| `DISABLE_REPLICATION_DELAY` | 복제 지연으로 인해 고가용성이 중단된 경우 | -| `MASTER_FAILURE_DETECTION` | 마스터 장애가 감지된 경우 | -| `FAILOVER_STARTED` | 장애 조치가 시작된 경우 | -| `FAILOVER_FAILED` | 장애 조치가 실패한 경우 | -| `FAILOVER_COMPLETED` | 장애 조치가 완료된 경우 | -| `DELETED` | 고가용성이 삭제된 경우 | - ---- - -### 고가용성 정보 보기 +### 로그 파일 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/high-availability +GET /v4.0/db-instances/{dbInstanceId}/log-files ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|---------|---------------------------------------------------------------------------------------------------------------------| -| useHighAvailability | Body | Boolean | 고가용성 사용 여부 | -| haStatus | Body | Enum | 고가용성 상태 | -| pingInterval | Body | Number | Ping 간격(초) | -| pingType | Body | Enum | Ping 타입
- `INSERT`
- `SELECT` | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| logFiles | Body | Array | 로그 파일 목록 | +| logFiles.logFileName | Body | String | 로그 파일 이름 | +| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- ERROR
- BINLOG
- GENERAL
- SLOW_QUERY
- AUDIT
- BACKUP | +| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | +| logFiles.createdYmdt | Body | DateTime | 생성 일시 |

예시 -

```json @@ -1838,193 +2120,155 @@ GET /v4.0/db-instances/{dbInstanceId}/high-availability "resultMessage": "SUCCESS", "isSuccessful": true }, - "useHighAvailability": true, - "haStatus": "STABLE", - "pingInterval": 3, - "pingType": "INSERT" + "logFiles": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-
--- -### 고가용성 수정하기 +### 로그 파일 내보내기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/high-availability +POST /v4.0/db-instances/{dbInstanceId}/log-files/export ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Modify | 고가용성 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|---------|----|------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- `INSERT`
- `SELECT` | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 고가용성 사용 시 필수값 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| logFileNames | Body | Array | O | 로그 파일 이름 목록 | +| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | -### 고가용성 다시 시작하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume +```json +{ + "logFileNames": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------| -| RDSforMySQL:HighAvailability.Resume | 고가용성 다시 시작하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### 고가용성 일시 중지하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|--------------| -| RDSforMySQL:HighAvailability.Pause | 고가용성 일시 중지하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 고가용성 복구하기 +### 로그 파일 내용 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair +GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Repair | 고가용성 복구하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| logFileName | URL | UUID | O | 로그 파일 이름 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| content | Body | String | 로그 파일 내용 (최대 65533 bytes) | -### 고가용성 분리하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/split +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "content": "content-example" +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Split | 고가용성 분리하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 데이터 스토리지 정보 보기 +### DB 인스턴스 유지 관리 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/storage-info +GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| type | Query | String | X | | +| statuses | Query | String | X | | +| category | Query | String | X | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|---------|--------------------------------------------------------------------------------------| -| storageType | Body | Enum | 데이터 스토리지 타입 | -| storageSize | Body | Number | 데이터 스토리지 크기(GB) | -| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- `DETACHED`: 부착되지 않음
- `ATTACHED`: 부착됨
- `DELETED`: 삭제됨 | -| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | -| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | -| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 유지 관리 목록 갯수 | +| maintenances | Body | Array | 유지 관리 목록 | +| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| maintenances.description | Body | String | 유지 관리 설명 | +| maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| maintenances.payload | Body | Object | 유지 관리 타입에 따른 Payload | +| maintenances.required | Body | Boolean | 유지 관리 필수 여부 | +| maintenances.deadlineYmdt | Body | DateTime | 유지 관리 강제 적용 일시 | +| maintenances.status | Body | Enum | 유지 관리 상태
- PENDING: `대기`
- READY: `준비`
- RUNNING: `실행 중`
- COMPLETED: `완료`
- FAILED: `실패`
- EXCLUDED: `제외`
- DELETED: `삭제`
- UNKNOWN | +| maintenances.executionType | Body | Enum | 유지 관리 실행 타입
- SCHEDULED: `예약 실행 (유지 관리 기간 자동 실행)`
- MANUAL: `수동 실행 (즉시 실행)`
- FORCED: `강제 실행 (데드라인 초과 자동 실행)` | +| maintenances.addedYmdt | Body | DateTime | 유지 관리 스케줄 등록 일시 | +| maintenances.executionStartedYmdt | Body | DateTime | 유지 관리 시작 일시 | +| maintenances.executionCompletedYmdt | Body | DateTime | 유지 관리 종료 일시 |
예시

@@ -2036,89 +2280,58 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "General SSD", - "storageSize": 20, - "storageStatus": "ATTACHED", - "storageAutoscale": { - "useStorageAutoscale": true, - "threshold": 80, - "maxStorageSize": 100, - "cooldownTime": 10 - } + "totalCounts": 1, + "maintenances": [ + { + "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

- --- -### 데이터 스토리지 정보 수정하기 +### DB 인스턴스 유지 관리 즉시 실행하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/storage-info +POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: 현재값
- 최댓값: `2048` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### 백업 정보 보기 - -```http -GET /v4.0/db-instances/{dbInstanceId}/backup-info -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|---------|----------------| -| backupPeriod | Body | Number | 백업 보관 기간(일) | -| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | -| backupRetryCount | Body | Number | 백업 재시도 횟수 | -| replicationRegion | Body | Enum | 백업 복제 리전 | -| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | -| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2130,65 +2343,42 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "backupPeriod": 1, - "ftwrlWaitTimeout": 1800, - "backupRetryCount": 0, - "replicationRegion": null, - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### 백업 정보 수정하기 +### DB 인스턴스 유지 관리 예약하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/backup-info +POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------------------------|------|---------|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload |
예시

```json { - "backupPeriod": 5, - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndBgnTime": "01:00:00", - "backupWndDuration": "TWO_HOURS" - } - ] + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" } ``` @@ -2197,45 +2387,58 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 네트워크 정보 보기 +### DB 인스턴스 유지 관리 삭제하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/network-info +DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| maintenanceId | URL | UUID | O | 유지 관리 아이디 | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 네트워크 정보 보기 -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | +```http +GET /v4.0/db-instances/{dbInstanceId}/network-info +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------------------------------------------------------------------------------------------------------------------------------| -| availabilityZone | Body | Enum | DB 인스턴스를 생성할 가용성 영역 | -| subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | UUID | 서브넷의 식별자 | -| subnet.subnetName | Body | UUID | 서브넷을 식별할 수 있는 이름 | -| subnet.subnetCidr | Body | UUID | 서브넷의 CIDR | -| endPoints | Body | Array | 접속 정보 목록 | -| endPoints.domain | Body | String | 도메인 | -| endPoints.ipAddress | Body | String | IP 주소 | -| endPoints.endPointType | Body | Enum | 접속 정보 타입
-`EXTERNAL`: 외부 접속 도메인
-`INTERNAL`: 내부 접속 도메인
-`PUBLIC`: (Deprecated) 외부 접속 도메인
-`PRIVATE`: (Deprecated) 내부 접속 도메인 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | +| subnet | Body | Object | 서브넷 객체 | +| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnet.subnetCidr | Body | String | 서브넷의 CIDR | +| endPoints | Body | Array | 접속 정보 목록 | +| endPoints.domain | Body | String | 도메인 | +| endPoints.ipAddress | Body | String | IP 주소 | +| endPoints.endPointType | Body | String | 접속 정보 타입 |

예시

@@ -2247,17 +2450,15 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "kr-pub-a", + "availabilityZone": "availabilityZone-example", "subnet": { - "subnetId": "bd453789-34ae-416c-9f78-05b9e43a46be", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/16" + "subnetId": "subnetId-example", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example" }, "endPoints": [ { - "domain": "ea548a78-d85f-43b4-8ddf-c88d999b9905.internal.kr1.mysql.rds.nhncloudservice.com", - "ipAddress": "192.168.0.2", - "endPointType": "INTERNAL" + "endPointType": "endPointType-example" } ] } @@ -2274,61 +2475,30 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | -### DB 사용자 목록 보기 +

예시 +

-```http -GET /v4.0/db-instances/{dbInstanceId}/db-users +```json +{ + "usePublicAccess": false +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|---------------------| -| RDSforMySQL:DbInstanceUser.List | DB 인스턴스 내 사용자 목록 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|-----------------------------------------------------------------------------------------------------------------------------| -| dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | -| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | -| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | -| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `UPDATING`: 수정 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbUsers.authenticationPlugin | Body | Enum | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| dbUsers.tlsOption | Body | Enum | TLS Option
- NONE
- SSL
- X509 | -| dbUsers.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbUsers.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2340,19 +2510,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbUsers": [ - { - "dbUserId": "4b3d530b-fd02-4d59-a620-83d019a67bbb", - "dbUserName": "db-user", - "host": "%", - "authorityType": "DDL", - "dbUserStatus": "STABLE", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE", - "createdYmdt": "2023-03-17T14:02:29+09:00", - "updatedYmdt": "2023-03-17T14:02:31+09:00" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2361,164 +2519,180 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users --- -### DB 사용자 생성하기 +### DB 인스턴스 승격하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-users +POST /v4.0/db-instances/{dbInstanceId}/promote ``` +#### 요청 -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Create | DB 인스턴스 내 사용자 생성하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserName | Body | String | O | DB 사용자 계정 이름
- 최소 길이: `1`
- 최대 길이: `32` | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| host | Body | String | O | DB 사용자 계정의 호스트명
- 예시: `1.1.1.%` | -| authorityType | Body | Enum | O | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- 기본값: `NATIVE`(미지원 시 `CACHING_SHA2`)
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | +#### 응답 -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 설정할 수 있습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "dbUserName": "db-user", - "dbPassword": "password", - "host": "1.1.1.%", - "authorityType": "CRUD", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 수정하기 +### DB 인스턴스 재구축하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Modify | DB 인스턴스 내 사용자 수정하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | -| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| authorityType | Body | Enum | X | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | +#### 응답 -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 수정할 수 있습니다. -> `authenticationPlugin`의 값은 `dbPassword`와 동시에 수정을 해야 합니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "authorityType": "DDL" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 삭제하기 +### DB 인스턴스 복제하기 ```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +POST /v4.0/db-instances/{dbInstanceId}/replicate ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Delete | DB 인스턴스 내 사용자 삭제하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +#### 공통 요청 ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부 | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | X | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | X | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -### DB 스키마 목록 보기 +
예시 +

-```http -GET /v4.0/db-instances/{dbInstanceId}/db-schemas +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|---------------------| -| RDSforMySQL:DbInstanceSchema.List | DB 인스턴스 내 스키마 목록 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|------------------------------------------------------------------------------------------------------| -| dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | -| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | -| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbSchemas.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2530,14 +2704,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSchemas": [ - { - "dbSchemaId": "7c9a94b8-86c1-435d-8af2-82a5e9d53fd4", - "dbSchemaName": "schema", - "dbSchemaStatus": "STABLE", - "createdYmdt": "2023-03-20T13:37:45+09:00" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2546,93 +2713,99 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas --- -### DB 스키마 생성하기 +### DB 인스턴스 재시작하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-schemas +POST /v4.0/db-instances/{dbInstanceId}/restart ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceSchema.Create | DB 인스턴스 내 스키마 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaName | Body | String | O | DB 스키마 이름 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | -### DB 스키마 삭제하기 +

예시 +

-```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +```json +{ + "useOnlineFailover": false, + "executeBackup": false, + "waitReplicationDelay": false, + "useReadOnly": false +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceSchema.Delete | DB 인스턴스 내 스키마 삭제하기 | +

+
-#### 요청 +#### 응답 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | +
예시 +

-#### 응답 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 로그 파일 목록 보기 +### DB 인스턴스 복원 정보 조회 ```http -GET /v4.0/db-instances/{dbInstanceId}/log-files +GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|-----------------------| -| RDSforMySQL:DbInstanceLog.List | DB 인스턴스 내 로그 파일 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|-------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileTypes | Query | Array | X | 로그 파일 타입 종류 목록
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| logFiles | Body | Array | 로그 파일 목록 | -| logFiles.logFileName | Body | String | 로그 파일명 | -| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | -| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | -| logFiles.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | +| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | +| restorableBackups | Body | Array | 복원 가능한 백업 목록 | +| restorableBackups.backup | Body | Object | 백업 정보 객체 | +| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupName | Body | String | 백업 이름 | +| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | +| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | +| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | +| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | +| restorableBackups.backup.binLogPosition | Body | Object | 바이너리 로그 파일 위치 | +| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | +| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | +| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 |
예시

@@ -2644,12 +2817,11 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files "resultMessage": "SUCCESS", "isSuccessful": true }, - "logFiles": [ + "oldestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "restorableBackups": [ { - "logFileName": "xtra_full.log-20230317", - "logFileType": "BACKUP", - "logFileSize": 4096, - "createdYmdt": "2023-03-17T14:02:29+09:00" + "restorableBinLogs": [] } ] } @@ -2660,33 +2832,26 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files --- -### 로그 파일 내용 보기 +### 복원될 마지막 쿼리 조회 ```http -GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} +GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|-----------------------| -| RDSforMySQL:DbInstanceLog.Get | DB 인스턴스 내 로그 파일 내용 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|--------|----|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileName | URL | String | O | 로그 파일명 | -| logFileType | Query | Enum | O | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------|------|--------|---------------------------| -| content | Body | String | 로그 파일 내용(최대 65533 Bytes) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| executedYmdt | Body | DateTime | 쿼리 수행 일시 | +| lastQuery | Body | String | 마지막 수행 쿼리 |

예시

@@ -2698,7 +2863,8 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} "resultMessage": "SUCCESS", "isSuccessful": true }, - "content": "..." + "executedYmdt": "2023-12-31T15:00:00+09:00", + "lastQuery": "lastQuery-example" } ``` @@ -2707,84 +2873,188 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} --- -### 로그 파일 내보내기 +### DB 인스턴스 복원 ```http -POST /v4.0/db-instances/{dbInstanceId}/log-files/export +POST /v4.0/db-instances/{dbInstanceId}/restore +``` + +#### 공통 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미입력 시 원본 인스턴스의 사양이 적용됩니다. | +| dbPort | Body | Number | X | DB 포트 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | X | 스토리지 정보 객체. 미입력 시 원본 인스턴스의 스토리지 설정이 적용됩니다. | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미입력 시 원본 인스턴스의 스토리지 타입이 적용됩니다. | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미입력 시 원본 인스턴스의 스토리지 크기가 적용됩니다.
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | X | 네트워크 정보 객체. 미입력 시 원본 인스턴스의 네트워크 설정이 적용됩니다. | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미입력 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미입력 시 랜덤 선택 | +| backup | Body | Object | X | 백업 정보 객체. 미입력 시 원본 인스턴스의 백업 설정이 적용됩니다. | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미입력 시 원본 인스턴스의 백업 보관 기간이 적용됩니다.
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미입력 시 원본 인스턴스의 백업 스케쥴이 적용됩니다. | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.restoreType | Body | Enum | O | 복원 타입
- TIMESTAMP: `복원 가능한 시간 이내의 시간을 이용한 시점 복원`
- BINLOG: `복원 가능한 바이너리 로그 위치를 이용한 시점 복원`
- BACKUP: `기존에 생성한 백업을 이용한 스냅숏 복원` | +| restore.binLog.binLogFileName | Body | String | X | 복원에 사용할 바이너리 로그 이름 | +| restore.binLog.binLogPosition | Body | Object | X | 복원에 사용할 바이너리 로그 위치 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미입력 시 원본 인스턴스의 파라미터 그룹이 적용됩니다. | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록. 미입력 시 원본 인스턴스의 보안 그룹이 적용됩니다. | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | + +#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.restoreYmdt | Body | DateTime | X | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | + +복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. + +#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | +| restore.binLog | Body | Object | X | 복원에 사용할 바이너리 로그 정보 객체 | + +바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. + +#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "useHighAvailability": false, + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "restoreType": "TIMESTAMP", + "binLog": { + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + } + } + }, + "useDefaultNotification": false, + "useSlowQueryAnalysis": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|----------------------| -| RDSforMySQL:DbInstanceLog.Export | DB 인스턴스 내 로그 파일 내보내기 | +

+
-#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|--------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileNames | Body | Array | O | 로그 파일명 목록
- 최소 크기: `1` | -| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "logFileNames": ["xtra_full.log-20230317"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "logs/backup" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### BinLog 목록 보기 +### DB 인스턴스 시작하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/binlogs +POST /v4.0/db-instances/{dbInstanceId}/start ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|---------------| -| RDSforMySQL:DbInstanceBinLog.List | BinLog 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|---------|----|---------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| deletable | Query | Boolean | X | 삭제 가능한 BinLog만 조회할지 여부
- `true`: 마지막 BinLog 제외
- `false`: 전체
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|----------|-----------------------------------| -| binLogs | Body | Array | BinLog 파일 목록 | -| binLogs.binLogFileName | Body | String | BinLog 파일명 | -| binLogs.binLogFileSize | Body | Number | BinLog 파일 크기(Byte) | -| binLogs.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2796,13 +3066,7 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs "resultMessage": "SUCCESS", "isSuccessful": true }, - "binLogs": [ - { - "binLogFileName": "mysql-bin.000001", - "binLogFileSize": 1073741824, - "createdYmdt": "2023-03-17T14:02:29+09:00" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2811,40 +3075,25 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs --- -### BinLog 삭제 +### DB 인스턴스 정지하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge +POST /v4.0/db-instances/{dbInstanceId}/stop ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|------------| -| RDSforMySQL:DbInstanceBinLog.Purge | BinLog 삭제 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| lastBinLogFileName | Body | String | O | 삭제할 마지막 BinLog 파일명(해당 파일 직전까지 삭제됩니다) | - -

예시 -

- -```json -{ - "lastBinLogFileName": "mysql-bin.000010" -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2855,7 +3104,8 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2864,35 +3114,32 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge --- -### 인증서 파일 목록 보기 +### 스토리지 정보 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/certificates +GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|---------------| -| RDSforMySQL:DbInstanceCertificate.List | 인증서 파일 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|---------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|------------------------------------------------------------------------------| -| certificates | Body | Array | 인증서 파일 목록 | -| certificates.fileName | Body | String | 인증서 파일명 | -| certificates.certificateType | Body | Enum | 인증서 타입
- `CA_FILE`: CA 인증서
- `CERT_FILE`: 인증서
- `KEY_FILE`: 비밀 키 | -| certificates.fileSize | Body | Number | 인증서 파일 크기(Byte) | -| certificates.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageType | Body | String | 데이터 스토리지 타입 | +| storageSize | Body | Number | 데이터 스토리지 크기(GB) | +| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- DELETED: `삭제됨`
- PENDING_DELETION: `삭제 유예됨`
- DELETION_RESERVED: `삭제 예약됨 (스냅샷 정리 대기)`
- DETACHED: `해제됨`
- ATTACHED: `할당됨` | +| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | +| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | +| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | +| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) |

예시

@@ -2904,14 +3151,15 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates "resultMessage": "SUCCESS", "isSuccessful": true }, - "certificates": [ - { - "fileName": "ca.pem", - "certificateType": "CA_FILE", - "fileSize": 2048, - "createdYmdt": "2023-03-17T14:02:29+09:00" - } - ] + "storageType": "storageType-example", + "storageSize": 1, + "storageStatus": "DELETED", + "storageAutoscale": { + "useStorageAutoscale": false, + "threshold": 1, + "maxStorageSize": 1, + "cooldownTime": 1 + } } ``` @@ -2920,41 +3168,38 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates --- -### 인증서 파일 내보내기 +### 스토리지 정보 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/certificates/upload +PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|----------------------------------------------------------|-------------| -| RDSforMySQL:DbInstanceCertificate.Export | 인증서 파일 내보내기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최댓값: `2048` | +| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -#### 요청 +#### 스토리지 자동 확장 사용 시 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|--------|----|------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| certificateTypes | Body | Array | O | 업로드할 인증서 타입
- `CA_FILE`: CA 인증서
- `CERT_FILE`: 인증서
- `KEY_FILE`: 비밀 키 | -| tenantId | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 인증서 파일의 경로 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |

예시

```json { - "certificateTypes": ["CA_FILE", "CERT_FILE", "KEY_FILE"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "certificates/" + "storageSize": 1, + "storageAutoscale": { + "useStorageAutoscale": false + } } ``` @@ -2963,67 +3208,10 @@ POST /v4.0/db-instances/{dbInstanceId}/certificates/upload #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | - -### 백업 상세 보기 - -```http -GET /v4.0/backups/{backupId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------|----------| -| RDSforMySQL:Backup.Get | 백업 상세 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------------------------|------|----------|-----------------| -| backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | UUID | 백업의 식별자 | -| backup.regionCode | Body | Enum | 리전 코드 | -| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backup.backupStatus | Body | Enum | 백업의 현재 상태 | -| backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| backup.dbVersion | Body | Enum | DB 엔진 버전 | -| backup.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backup.backupType | Body | Enum | 백업 유형 | -| backup.backupMethodType | Body | Enum | 백업 방식 | -| backup.backupFileType | Body | Enum | 백업 파일 유형 | -| backup.backupSize | Body | Number | 백업의 크기(Byte) | -| backup.isReplicable | Body | Boolean | 복제 가능 여부 | -| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| backup.binLogPosition | Body | Number | 바이너리 로그 위치 | -| backup.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| backup.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -

예시

@@ -3034,25 +3222,7 @@ GET /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "backup": { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "regionCode": "KR1", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbInstanceName": "db-instance", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupMethodType": "FULL", - "backupFileType": "XTRA_BACKUP", - "backupSize": 4996786, - "isReplicable": true, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 154, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" - } + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3061,46 +3231,27 @@ GET /v4.0/backups/{backupId} --- -### 백업 목록 조회 +## DB 인스턴스 그룹 + +### DB 인스턴스 그룹 목록 보기 ```http -GET /v4.0/backups +GET /v4.0/db-instance-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Backup.List | 백업 목록 조회 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | -| backupType | Query | Enum | X | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동
- 기본값: 전체 | -| dbInstanceId | Query | UUID | X | 원본 DB 인스턴스의 식별자 | -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|-----------------------------------| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | UUID | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태 | -| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형 | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3112,19 +3263,9 @@ GET /v4.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "backups": [ + "dbInstanceGroups": [ { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupSize": 4996786, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -3135,313 +3276,173 @@ GET /v4.0/backups --- -### 백업 생성하기 +### DB 인스턴스 그룹 상세 보기 ```http -POST /v4.0/backups +GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Create | 백업 생성하기 | - -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|--------|----|--------------------------------------------------------------------------------------| -| backupName | Body | String | O | 백업을 식별할 수 있는 이름 | -| backupMethodType | Body | Enum | O | 백업 방식 타입 종류
- `FULL`: 전체 백업
- `INCREMENTAL`: 증분 백업
- `SNAPSHOT`: 스냅숏 백업 | +이 API는 요청 본문을 요구하지 않습니다. -#### 전체 백업(backupMethodType이 `FULL`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|--------------| -| dbInstanceId | Body | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "backupName": "example-backup-name", - "backupMethodType": "FULL", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 증분 백업(backupMethodType이 `INCREMENTAL`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|------------| -| baseBackupId | Body | UUID | O | 기준 백업의 식별자 | +--- +## DB 인스턴스 사양 -
예시 -

+### DB 인스턴스 사양 목록 보기 -```json -{ - "backupName": "example-backup-name", - "backupMethodType": "INCREMENTAL", - "baseBackupId": "3ae7914f-9b42-4729-b125-87417b72cf36" -} +```http +GET /v4.0/db-flavors ``` -

-
- +#### 요청 -#### 스냅숏 백업(backupMethodType이 `SNAPSHOT`인 경우) +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|--------------| -| dbInstanceId | Body | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

```json { - "backupName": "example-backup-name", - "backupMethodType": "SNAPSHOT", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ```

- -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 백업 내보내기 +## 가용성 영역 + +### 가용성 영역 목록 보기 ```http -POST /v4.0/backups/{backupId}/export +GET /v4.0/availability-zones ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Export | 백업 내보내기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | - -
예시 -

- -```json -{ - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - -> [주의] -> 수동 백업의 경우 백업이 수행된 DB 인스턴스가 존재하지 않으면, 백업을 오브젝트 스토리지로 내보낼 수 없습니다. - ---- - -### 백업 복원하기 - -```http -POST /v4.0/backups/{backupId}/restore -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------| -| RDSforMySQL:Backup.Restore | 백업 복원하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Integer | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a`
- 기본값: 랜덤 선택 | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 예시: `General SSD`
- 기본값: 원본 DB 인스턴스 값 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: 원본 DB 인스턴스 값 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZones | Body | Array | 가용성 영역 목록 | +| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | +| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | +| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 |
예시

```json - { - "dbInstanceName": "db-instance-restore", - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbPort": 10000, - "parameterGroupId": "132d383c-38e3-468a-a826-5e9a8fff15d0", - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "HALF_AN_HOUR" + "availabilityZones": [ + { + "zoneState": { + "available": false } - ] - } + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### 백업 삭제하기 - -```http -DELETE /v4.0/backups/{backupId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Delete | 백업 삭제하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 네트워크 -### DB 보안 그룹 목록 보기 +### 서브넷 목록 보기 ```http -GET /v4.0/db-security-groups -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|----------------| -| RDSforMySQL:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | +GET /v4.0/network/subnets +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-----------------------------------| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |
예시

@@ -3453,14 +3454,9 @@ GET /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "subnets": [ { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2022-02-19T19:18:13+09:00" + "availableIpCount": 1 } ] } @@ -3471,48 +3467,23 @@ GET /v4.0/db-security-groups --- -### DB 보안 그룹 상세 보기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -GET /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/storage-types ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|----------------| -| RDSforMySQL:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|----------|--------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다.
- `PORT`: 지정된 포트값으로 설정됩니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | 허용할 트래픽의 원격 소스 | -| rules.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| rules.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

@@ -3524,30 +3495,7 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "rules": [ - { - "ruleId": "17c88ef6-95f1-4678-84f9-fee1b22e250d", - "description": "description", - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } - ], - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } + "storageTypes": [] } ``` @@ -3556,106 +3504,41 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 생성하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v4.0/db-security-groups +GET /v4.0/metric-statistics ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 필요하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. - -

예시 -

- -```json -{ - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "rules": [ - { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0" - } - ] -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|------|---------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 보안 그룹 수정하기 +### Metric 목록 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/metrics ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|-----------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | - -
예시 -

- -```json -{ - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -3666,39 +3549,58 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "metrics": [ + { + "unit": "unit-example" + } + ] } ```

- --- -### DB 보안 그룹 삭제하기 +## 백업 -```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId} -``` +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | -#### 필요 권한 +### 백업 목록 조회 -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | +```http +GET /v4.0/backups +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3709,7 +3611,13 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "totalCounts": 1, + "backups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -3718,48 +3626,30 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 규칙 생성하기 +### 백업 생성하기 ```http -POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v4.0/backups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 필요하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | +| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | +| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT", - "minPort": 10000, - "maxPort": 10000 - }, - "cidr": "0.0.0.0/0" + "backupName": "backupName", + "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "backupMethodType": "FULL" } ``` @@ -3768,131 +3658,49 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### DB 보안 그룹 규칙 수정하기 - -```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleId | URL | UUID | O | DB 보안 그룹 규칙의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 필요하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. -

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "DB_PORT" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "0.0.0.0/0" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 보안 그룹 규칙 삭제하기 +### 백업 삭제하기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules +DELETE /v4.0/backups/{backupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|-------|----|---------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleIds | Query | Array | O | DB 보안 그룹 규칙의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 - -```http -GET /v4.0/parameter-groups -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.List | 파라미터 그룹 목록 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------|-------|------|----|----------| -| dbVersion | Query | Enum | X | DB 엔진 유형 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-------------------------------------------------------------------| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -
예시

@@ -3903,67 +3711,51 @@ GET /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroups": [ - { - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "createdYmdt": "2023-02-31T15:28:17+09:00", - "updatedYmdt": "2023-02-31T15:28:17+09:00" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### 파라미터 그룹 상세 보기 +### 백업 단건 조회 ```http -GET /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/backups/{backupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.Get | 파라미터 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|--------------------------------------------------------------------------------------------------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | UUID | 파라미터 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- `CLIENT`: client
- `MYSQL`: mysql
- `MYSQLD`: mysqld | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일명 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- `VARIABLE`: 언제든 수정 가능
- `CONSTANT`: 수정 불가능
- `INIT_VARIABLE`: DB 인스턴스 생성 시에만 수정 가능 | -| parameters.applyType | Body | Enum | 적용 타입
- `SESSION`: 세션 적용
- `FILE`: 설정 파일 적용(재시작 필요)
- `BOTH`: 전체(재시작 필요) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backup | Body | Object | 백업 상세 정보 | +| backup.backupId | Body | String | 백업의 식별자 | +| backup.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | +| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| backup.dbVersion | Body | Enum | DB 엔진 버전 | +| backup.utilVersion | Body | String | 유틸리티 버전 | +| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | +| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | +| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | +| backup.backupSize | Body | Number | 백업의 크기(Byte) | +| backup.isReplicable | Body | Boolean | 복제 가능 여부 | +| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | +| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | +| backup.createdYmdt | Body | DateTime | 생성 일시 | +| backup.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3975,62 +3767,61 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "parameters": [ - { - "parameterId": "fa040b5e-f29f-46de-8f0d-bba4cb82887a", - "parameterFileGroup": "client", - "parameterName": "socket", - "fileParameterName": "socket", - "value": "/home/tcrds/db/mysql/tmp/mysql.sock", - "defaultValue": "/home/tcrds/db/mysql/tmp/mysql.sock", - "allowedValue": "", - "updateType": "CONSTANT", - "applyType": "BOTH" - } - ], - "createdYmdt": "2023-03-13T11:02:28+09:00", - "updatedYmdt": "2023-03-13T11:02:28+09:00" + "backup": { + "backupId": "backupId-example", + "regionCode": "KR1", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupMethodType": "FULL", + "backupFileType": "XBSTREAM", + "backupSize": 1, + "isReplicable": false, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ```

- --- -### 파라미터 그룹 생성하기 +### 백업 내보내기 ```http -POST /v4.0/parameter-groups +POST /v4.0/backups/{backupId}/export ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Create | 파라미터 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |
예시

```json { - "parameterGroupName": "parameter-group", - "dbVersion": "MYSQL_V8028" + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -4039,39 +3830,126 @@ POST /v4.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
--- -### 파라미터 그룹 복사하기 +### 백업 복원하기 ```http -POST /v4.0/parameter-groups/{parameterGroupId}/copy +POST /v4.0/backups/{backupId}/restore ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Copy | 파라미터 그룹 복사하기 | - -#### 요청 +#### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | +| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |
예시

```json { - "parameterGroupName": "parameter-group-copy", - "description": "copy" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } } ``` @@ -4080,47 +3958,51 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | - ---- - -### 파라미터 그룹 수정하기 - -```http -PUT /v4.0/parameter-groups/{parameterGroupId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "parameterGroupName": "parameter-group" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

+--- + +## 사용자 그룹 + +### 사용자 그룹 목록 보기 + +```http +GET /v4.0/user-groups +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4131,7 +4013,13 @@ PUT /v4.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "totalCounts": 1, + "userGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -4140,38 +4028,28 @@ PUT /v4.0/parameter-groups/{parameterGroupId} --- -### 파라미터 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/parameters +POST /v4.0/user-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------|------|--------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "modifiedParameters": [ - { - "parameterId": "3abac558-7274-44e1-9f4a-f100f53f67ba", - "value": "0" - } - ] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ``` @@ -4180,7 +4058,9 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

@@ -4191,7 +4071,8 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "userGroupId": "userGroupId-example" } ``` @@ -4200,27 +4081,51 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters --- -### 파라미터 그룹 재설정하기 +### 사용자 그룹 삭제하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/reset +DELETE /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 -| 권한명 | 설명 | -|--------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | +```http +GET /v4.0/user-groups/{userGroupId} +``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4231,7 +4136,17 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ + { + "memberId": "memberId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4240,75 +4155,65 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset --- -### 파라미터 그룹 삭제하기 +### 사용자 그룹 수정하기 ```http -DELETE /v4.0/parameter-groups/{parameterGroupId} +PUT /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 사용자 그룹 +## 알림 그룹 -### 사용자 그룹 목록 보기 +### 알림 그룹 목록 보기 ```http -GET /v4.0/user-groups +GET /v4.0/notification-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|--------------| -| RDSforMySQL:UserGroup.List | 사용자 그룹 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|-----------------------------------| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4320,12 +4225,9 @@ GET /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "notificationGroups": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -4336,37 +4238,45 @@ GET /v4.0/user-groups --- -### 사용자 그룹 상세 보기 +### 알림 그룹 생성하기 ```http -GET /v4.0/user-groups/{userGroupId} +POST /v4.0/notification-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------------|--------------| -| RDSforMySQL:UserGroup.Get | 사용자 그룹 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], + "userGroupIds": [] +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|----------|-----------------------------------------------------------------------------------------------------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
`ENTIRE`: 프로젝트 멤버 전체를 포함하는 사용자 그룹
`INDIVIDUAL_MEMBER`: 특정 프로젝트 멤버를 포함하는 사용자 그룹 | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 |
예시

@@ -4378,16 +4288,7 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "userGroupTypeCode": "INDIVIDUAL_MEMBER", - "members": [ - { - "memberId": "1321e759-2ef3-4b85-9921-b13e918b24b5" - } - ], - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -4396,96 +4297,57 @@ GET /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 생성하기 +### 알림 그룹 삭제하기 ```http -POST /v4.0/user-groups +DELETE /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Create | 사용자 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|-----------------------------------------------------------| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록
`selectAll`이 true인 경우 해당 필드 값은 무시됩니다 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 여부
true인 경우 해당 그룹은 전체 멤버를 대상으로 설정됩니다 | - -

예시 -

- -```json -{ - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5" - ] -} -``` - -```json -{ - "userGroupName": "dev-team", - "selectAll": true -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------|------|------|-------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 사용자 그룹 수정하기 +### 알림 그룹 상세 보기 ```http -PUT /v4.0/user-groups/{userGroupId} +GET /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Modify | 사용자 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|----------------------------------------------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | -| userGroupName | Body | String | X | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 여부
true인 경우 해당 그룹은 전체 멤버를 대상으로 설정됩니다 | - -
예시 -

- -```json -{ - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5", - "f9064b09-2b15-442e-a4b0-3a5a2754555e" - ] -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4496,7 +4358,24 @@ PUT /v4.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ + { + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4505,59 +4384,67 @@ PUT /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 삭제하기 +### 알림 그룹 수정하기 ```http -DELETE /v4.0/user-groups/{userGroupId} +PUT /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Delete | 사용자 그룹 삭제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 알림 그룹 +## 이벤트 -### 알림 그룹 목록 보기 +### 이벤트 카테고리 -```http -GET /v4.0/notification-groups -``` +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. + +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -#### 필요 권한 +### 구독 가능한 이벤트 코드 목록 보기 -| 권한명 | 설명 | -|----------------------------------------------------|-------------| -| RDSforMySQL:NotificationGroup.List | 알림 그룹 목록 보기 | +```http +GET /v4.0/event-codes +``` #### 요청 @@ -4565,16 +4452,11 @@ GET /v4.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------------|------|----------|-----------------------------------| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |
예시

@@ -4586,15 +4468,9 @@ GET /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ + "eventCodes": [ { - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "eventCategoryType": "ALL" } ] } @@ -4605,43 +4481,30 @@ GET /v4.0/notification-groups --- -### 알림 그룹 상세 보기 +### 이벤트 목록 조회 ```http -GET /v4.0/notification-groups/{notificationGroupId} +GET /v4.0/events ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|-------------| -| RDSforMySQL:NotificationGroup.Get | 알림 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------------|------|----------|-----------------------------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

@@ -4653,25 +4516,12 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "dbInstances": [ - { - "dbInstanceId": "ed5cb985-526f-4c54-9ae0-40288593de65", - "dbInstanceName": "database" - } - ], - "userGroups": [ + "totalCounts": 1, + "events": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team" + "eventYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + ] } ``` @@ -4680,42 +4530,52 @@ GET /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 생성하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v4.0/notification-groups +GET /v4.0/event-subscriptions ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Create | 알림 그룹 생성하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------------| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |

예시

```json { - "notificationGroupName": "dev-team-noti", - "notifyEmail": false, - "isEnable": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65" - ], - "userGroupIds": [ - "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } ] } ``` @@ -4723,48 +4583,46 @@ POST /v4.0/notification-groups

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|------|------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | - --- -### 알림 그룹 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v4.0/notification-groups/{notificationGroupId} +POST /v4.0/event-subscriptions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Modify | 알림 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부 | -| notifySms | Body | Boolean | X | SMS 알림 여부 | -| isEnabled | Body | Boolean | X | 활성화 여부 | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "notifyEmail": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65", - "d51b7da0-682f-47ff-b588-b739f6adc740" - ] + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ``` @@ -4773,7 +4631,9 @@ PUT /v4.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -4784,7 +4644,8 @@ PUT /v4.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -4793,73 +4654,121 @@ PUT /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 삭제하기 +### 이벤트 구독 삭제하기 ```http -DELETE /v4.0/notification-groups/{notificationGroupId} +DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Delete | 알림 그룹 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v4.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 모니터링 +## 작업 정보 -### Metric 목록 보기 +### 작업 상태 -```http -GET /v4.0/metrics -``` +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | -#### 필요 권한 +### 작업 정보 상세 보기 -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Metric.List | 통계 정보 조회 | +```http +GET /v4.0/jobs/{jobId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|--------|-----------| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | Enum | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4871,12 +4780,15 @@ GET /v4.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ { - "measureName": "CPU_USAGE", - "unit": "%" + "resourceId": "resourceId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4885,62 +4797,47 @@ GET /v4.0/metrics --- -### 통계 정보 조회 +## 파라미터 그룹 + +### 파라미터 그룹 목록 보기 ```http -GET /v4.0/metric-statistics +GET /v4.0/parameter-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Metric.List | 통계 정보 조회 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|----------|----|-----------------------------------| -| dbInstanceId | Query | UUID | O | DB 인스턴스의 식별자 | -| measureNames | Query | Array | O | 조회 지표 목록
- 최소 크기: `1` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| interval | Query | Number | X | 조회 간격 | +이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|-----------|----------| -| metricStatistics | Body | Array | 통계 정보 목록 | -| metricStatistics.measureName | Body | Enum | 측정 항목 유형 | -| metricStatistics.unit | Body | String | 측정값 단위 | -| metricStatistics.values | Body | Array | 측정값 목록 | -| metricStatistics.values.timestamp | Body | Timestamp | 측정 시간 | -| metricStatistics.values.value | Body | Object | 측정값 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 파라미터 그룹 수 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "metricStatistics": [ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "parameterGroups": [ { - "measureName": "MYSQL_STATUS", - "unit": "", - "values": [ - [ - 1679298540, - "1" - ], - [ - 1679298600, - "1" - ], - [ - 1679298660, - "1" - ] - ] + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -4951,62 +4848,39 @@ GET /v4.0/metric-statistics --- -## 이벤트 - -### 이벤트 카테고리 - -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. - -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | - -### 이벤트 목록 조회 +### 파라미터 그룹 생성하기 ```http -GET /v4.0/events +POST /v4.0/parameter-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMySQL:Event.List | 이벤트 목록 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| eventCategoryType | Query | Enum | O | 조회할 이벤트 카테고리 유형
- `ALL`: 전체
- `INSTANCE`: DB 인스턴스
- `BACKUP`: 백업
- `DB_SECURITY_GROUP`: DB 보안 그룹
- `TENANT`: 테넌트 | -| sourceId | Query | String | X | 이벤트가 발생한 대상 리소스의 식별자 | -| keyword | Query | String | X | 이벤트 메시지에 포함된 문자열 검색어 | -| ascendingOrder | Query | Enum | X | 이벤트 메시지 정렬 순서
- `ASC`: 오름차순
- `DESC`: 내림차순
- 기본값: `DESC` | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|---------------------------------------| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메시지 목록 | -| events.messages.langCode | Body | String | 언어 코드 | -| events.messages.message | Body | String | 이벤트 메시지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -5018,34 +4892,7 @@ GET /v4.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 28, - "events": [ - { - "eventCategoryType": "INSTANCE", - "eventCode": "INSTC_02_01", - "sourceId": "76f00947-356e-4a20-8922-428368cc45ed", - "sourceName": "db-instance", - "messages": [ - { - "langCode": "EN", - "message": "DB instance started" - }, - { - "langCode": "JA", - "message": "DBインスタンスの起動" - }, - { - "langCode": "KO", - "message": "DB 인스턴스 시작" - }, - { - "langCode": "ZH", - "message": "DB instance started" - } - ], - "eventYmdt": "2023-03-20T16:31:59+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -5054,29 +4901,61 @@ GET /v4.0/events --- -### 구독 가능한 이벤트 코드 목록 보기 +### 파라미터 그룹 삭제하기 ```http -GET /v4.0/event-codes +DELETE /v4.0/parameter-groups/{parameterGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMySQL:Event.List | 이벤트 목록 보기 | +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 파라미터 그룹 상세 보기 + +```http +GET /v4.0/parameter-groups/{parameterGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|-------|-------------| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -5088,12 +4967,18 @@ GET /v4.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "eventCode": "INSTC_05_01", - "eventCategoryType": "INSTANCE" + "applyType": "BOTH" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -5102,140 +4987,60 @@ GET /v4.0/event-codes --- -## 이벤트 구독 - -### 이벤트 구독 목록 조회 +### 파라미터 그룹 수정하기 ```http -GET /v4.0/event-subscriptions +PUT /v4.0/parameter-groups/{parameterGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------------|---------------| -| RDSforMySQL:EventSubscription.List | 이벤트 구독 목록 조회 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | -| eventSubscriptionId | Query | UUID | X | 이벤트 구독의 식별자 | -| eventSubscriptionName | Query | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| userGroupId | Query | UUID | X | 사용자 그룹의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------------|------|----------|--------------------------| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트의 구독 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독을 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | UUID | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "eventSubscriptions": [ - { - "eventSubscriptionId": "12345678-1234-1234-1234-123456789012", - "eventCategoryType": "INSTANCE", - "eventSubscriptionName": "example-event-subscription", - "enabled": true, - "notifyEmail": true, - "notifySms": false, - "eventCodes": [ - "INSTC_05_01" - ], - "sources": [ - { - "sourceId": "87654321-4321-4321-4321-210987654321", - "eventCategoryType": "INSTANCE" - } - ], - "userGroupIds": [ - "11111111-2222-3333-4444-555555555555" - ], - "createdYmdt": "2024-01-01T12:00:00+09:00" - } - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 이벤트 구독 생성하기 +### 파라미터 그룹 복사하기 ```http -POST /v4.0/event-subscriptions +POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------------|--------------| -| RDSforMySQL:EventSubscription.Create | 이벤트 구독 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------------------|------|---------|----|-----------------------------------------| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형 | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름
- 최대 길이: `100` | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형 | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |
예시

```json { - "eventCategoryType": "INSTANCE", - "eventSubscriptionName": "example-event-subscription", - "enabled": true, - "notifyEmail": true, - "notifySms": false, - "eventCodes": [ - "INSTC_05_01" - ], - "sources": [ - { - "sourceId": "87654321-4321-4321-4321-210987654321", - "eventCategoryType": "INSTANCE" - } - ], - "userGroupIds": [ - "11111111-2222-3333-4444-555555555555" - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ``` @@ -5244,9 +5049,9 @@ POST /v4.0/event-subscriptions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------|------|------|-------------| -| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -5258,7 +5063,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "12345678-1234-1234-1234-123456789012" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -5267,56 +5072,30 @@ POST /v4.0/event-subscriptions --- -### 이벤트 구독 수정하기 +### 파라미터 수정하기 ```http -PUT /v4.0/event-subscriptions/{eventSubscriptionId} +PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------------|--------------| -| RDSforMySQL:EventSubscription.Modify | 이벤트 구독 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------------------|------|---------|----|-----------------------------------| -| eventSubscriptionId | URL | UUID | O | 이벤트 구독의 식별자 | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형 | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | X | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형 | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "eventSubscriptionName": "updated-event-subscription", - "enabled": false, - "notifyEmail": false, - "notifySms": true, - "eventCodes": [ - "INSTC_05_01", - "INSTC_06_01" - ], - "sources": [ + "modifiedParameters": [ { - "sourceId": "87654321-4321-4321-4321-210987654321", - "eventCategoryType": "INSTANCE" + "value": "value-example" } - ], - "userGroupIds": [ - "11111111-2222-3333-4444-555555555555", - "22222222-3333-4444-5555-666666666666" ] } ``` @@ -5328,6 +5107,50 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 파라미터 그룹 재설정하기 + +```http +PUT /v4.0/parameter-groups/{parameterGroupId}/reset +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 프로젝트 정보 + +### 프로젝트 멤버 목록 보기 + +```http +GET /v4.0/project/members +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +

예시

@@ -5337,7 +5160,12 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "members": [ + { + "phoneNumber": "phoneNumber-example" + } + ] } ``` @@ -5346,27 +5174,23 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} --- -### 이벤트 구독 삭제하기 +### 리전 목록 보기 ```http -DELETE /v4.0/event-subscriptions/{eventSubscriptionId} +GET /v4.0/project/regions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------------|--------------| -| RDSforMySQL:EventSubscription.Delete | 이벤트 구독 삭제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|-----|------|----|-------------| -| eventSubscriptionId | URL | UUID | O | 이벤트 구독의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

@@ -5377,7 +5201,12 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "regions": [ + { + "isEnabled": false + } + ] } ``` @@ -5385,3 +5214,4 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId}

--- + diff --git a/ko/api-guide-v4.0-ncgn.md b/ko/api-guide-v4.0-ncgn.md index ccc8e4d8..f5593487 100644 --- a/ko/api-guide-v4.0-ncgn.md +++ b/ko/api-guide-v4.0-ncgn.md @@ -2,36 +2,29 @@ ## RDS for MySQL API 공통 정보 -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|-----------|-----------------------------------------------| -| 한국(판교) 리전 | https://kr1-rds-mysql.api.gncloud.go.kr | - ### 인증 및 권한 RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. 발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|--------|--------|----|-------------------------------------------------------------| -| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | +| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. -또한 프로젝트 멤버 역할에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER`로 구분하여 권한을 부여할 수 있습니다. - -* `RDS for MySQL ADMIN` 권한은 모든 기능을 사용 가능합니다. -* `RDS for MySQL VIEWER` 권한은 정보를 조회하는 기능만 사용 가능합니다. +* `RDS for MySQL ADMIN` 역할은 API 실행에 필요한 모든 권한이 부여됩니다. +* `RDS for MySQL VIEWER` 역할은 정보를 조회하는 권한만 부여됩니다. * DB 인스턴스를 생성, 수정, 삭제하거나, DB 인스턴스를 대상으로 하는 어떠한 기능도 사용할 수 없습니다. - * 단, 알림 그룹 및 사용자 그룹 관련 기능은 사용 가능합니다. + * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용할 수 있습니다. API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같은 오류가 발생합니다. -| resultCode | resultMessage | 설명 | -|------------|---------------|-------------| -| 80401 | Unauthorized | 인증에 실패했습니다. | -| 80403 | Forbidden | 권한이 없습니다. | +| resultCode | resultMessage | 설명 | +|------------|---------------|-----| +| 80401 | Unauthorized | 인증에 실패했습니다. | +| 80403 | Forbidden | 권한이 없습니다. | ### 응답 공통 정보 @@ -49,59 +42,67 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 ``` #### 필드 -| 이름 | 형식 | 설명 | -|---------------|---------|-----------------------------------------| -| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | -| resultMessage | String | 결과 메시지 | -| isSuccessful | Boolean | 성공 여부 | +| 이름 | 형식 | 설명 | +|-----|-----|-----| +| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | +| resultMessage | String | 결과 메시지 | +| isSuccessful | Boolean | 성공 여부 | + +### API 엔드포인트 +| 리전 | 엔드포인트 | +|------|----------| +| 한국(판교) 리전 | https://kr1-rds-mysql.api.gncloud.go.kr | ### DB 엔진 유형 -| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | -|--------------|----------|-----------------|--------| -| MYSQL\_V5633 | X | X | NATIVE | -| MYSQL\_V5715 | O | O | NATIVE | -| MYSQL\_V5719 | O | O | NATIVE | -| MYSQL\_V5726 | O | O | NATIVE | -| MYSQL\_V5731 | X | X | NATIVE | -| MYSQL\_V5733 | O | X | NATIVE, SHA256 | -| MYSQL\_V5737 | O | O | NATIVE, SHA256 | -| MYSQL\_V8018 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8023 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8028 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8032 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8033 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8034 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8405 | O | O | CACHING_SHA2 | -| MYSQL_V8406 | O | O | CACHING_SHA2 | -| MYSQL_V8407 | O | O | CACHING_SHA2 | -| MYSQL_V8408 | O | O | CACHING_SHA2 | - -* ENUM 타입의 dbVersion 필드에서 해당 값을 사용할 수 있습니다. +| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | +|------------|----------|------------------|------------| +| MYSQL_V5633 | X | X | NATIVE | +| MYSQL_V5715 | O | O | NATIVE | +| MYSQL_V5719 | O | O | NATIVE | +| MYSQL_V5726 | O | O | NATIVE | +| MYSQL_V5731 | X | X | NATIVE | +| MYSQL_V5733 | O | X | NATIVE, SHA256 | +| MYSQL_V5737 | O | O | NATIVE, SHA256 | +| MYSQL_V8018 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8023 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8028 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8032 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8033 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8034 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8405 | O | O | CACHING_SHA2 | +| MYSQL_V8406 | O | O | CACHING_SHA2 | +| MYSQL_V8407 | O | O | CACHING_SHA2 | +| MYSQL_V8408 | O | O | CACHING_SHA2 | + +* ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## 프로젝트 정보 +## DB 보안 그룹 -### 리전 목록 보기 +### DB 보안 그룹 진행 상태 -```http -GET /v4.0/project/regions -``` +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | -#### 필요 권한 +### DB 보안 그룹 목록 보기 -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMySQL:Project.Get | 프로젝트 정보 조회 | +```http +GET /v4.0/db-security-groups +``` #### 요청 @@ -109,11 +110,16 @@ GET /v4.0/project/regions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------|------|---------|----------------------------------------------------------------------------| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -125,69 +131,52 @@ GET /v4.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ - { - "regionCode": "KR1", - "isEnabled": true - }, - { - "regionCode": "KR2", - "isEnabled": true - }, + "totalCounts": 1, + "dbSecurityGroups": [ { - "regionCode": "JP1", - "isEnabled": true + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } ``` +

--- -### 프로젝트 멤버 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v4.0/project/members +POST /v4.0/db-security-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMySQL:Project.Get | 프로젝트 정보 조회 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|--------|-----------------| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ { - "memberId": "1b1d3627-507a-49ea-8cb7-c86dfa9caa58", - "memberName": "홍길동", - "emailAddress": "gildong.hong@nhn.com", - "phoneNumber": "+821012345678" + "description": "description-example" } ] } @@ -196,35 +185,11 @@ GET /v4.0/project/members

---- - -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 - -```http -GET /v4.0/db-flavors -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|------------------| -| RDSforMySQL:DbFlavor.List | DB 인스턴스 사양 목록 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -236,14 +201,7 @@ GET /v4.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbFlavorName": "m2.c1m2", - "ram": 2048, - "vcpus": 1 - } - ] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -252,34 +210,62 @@ GET /v4.0/db-flavors --- -## 네트워크 - -### 서브넷 목록 보기 +### DB 보안 그룹 삭제하기 ```http -GET /v4.0/network/subnets +DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- -| 권한명 | 설명 | -|------------------------------------------|-----------| -| RDSforMySQL:Network.List | 서브넷 목록 보기 | +### DB 보안 그룹 상세 보기 + +```http +GET /v4.0/db-security-groups/{dbSecurityGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|---------|------------------| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | UUID | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| rules | Body | Array | DB 보안 그룹 규칙 목록 | +| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | 포트 객체 | +| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | 최소 포트 범위 | +| rules.port.maxPort | Body | Number | 최대 포트 범위 | +| rules.cidr | Body | String | CIDR | +| rules.createdYmdt | Body | DateTime | 생성 일시 | +| rules.updatedYmdt | Body | DateTime | 수정 일시 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -291,15 +277,17 @@ GET /v4.0/network/subnets "resultMessage": "SUCCESS", "isSuccessful": true }, - "subnets": [ + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ { - "subnetId": "1b2a9b23-0725-4b92-8c78-35db66b8ad9f", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/24", - "usingGateway": true, - "availableIpCount": 240 + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -308,81 +296,59 @@ GET /v4.0/network/subnets --- -## DB 엔진 - -### DB 엔진 목록 보기 +### DB 보안 그룹 수정하기 ```http -GET /v4.0/db-versions +PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|-------------| -| RDSforMySQL:DbVersion.List | DB 엔진 목록 보기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|---------|-----------------------| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "dbVersions": [ - { - "dbVersion": "MYSQL_V8028", - "dbVersionName": "MySQL 8.0.28", - "restorableFromObs": true - } - ] + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 데이터 스토리지 +이 API는 응답 본문을 반환하지 않습니다. + +--- -### 데이터 스토리지 타입 목록 보기 +### DB 보안 그룹 규칙 삭제하기 ```http -GET /v4.0/storage-types +DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------|-------------------| -| RDSforMySQL:Storage.List | 데이터 스토리지 타입 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|-------|----------------| -| storageTypes | Body | Array | 데이터 스토리지 타입 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -394,10 +360,7 @@ GET /v4.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [ - "General SSD", - "General HDD" - ] + "jobId": "jobId-example" } ``` @@ -406,56 +369,51 @@ GET /v4.0/storage-types --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### DB 보안 그룹 규칙 생성하기 ```http -GET /v4.0/jobs/{jobId} +POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------|-------------| -| RDSforMySQL:Job.Get | 작업 정보 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------|-----|------|----|---------| -| jobId | URL | UUID | O | 작업의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------|------|----------|-----------------------------------| -| jobId | Body | UUID | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태 | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | Enum | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | UUID | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -467,16 +425,7 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "0ddb042c-5af6-43fb-a914-f4dd0540eb7c", - "jobStatus": "RUNNING", - "resourceRelations": [ - { - "resourceType": "DB_INSTANCE", - "resourceId": "56b39dcf-65eb-47ec-9d4f-09f160ba2266" - } - ], - "createdYmdt": "2023-02-22T20:47:12+09:00", - "updatedYmdt": "2023-02-22T20:49:46+09:00" + "jobId": "jobId-example" } ``` @@ -485,33 +434,52 @@ GET /v4.0/jobs/{jobId} --- -## DB 인스턴스 그룹 - -### DB 인스턴스 그룹 목록 보기 +### DB 보안 그룹 규칙 수정하기 ```http -GET /v4.0/db-instance-groups +PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|--------------------------------------------------|------------------| -| RDSforMySQL:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------|------|----------|--------------------------------------------------------------------------| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -523,14 +491,7 @@ GET /v4.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ - { - "dbInstanceGroupId": "05de0746-89fd-49c8-94f9-9c5b1df97009", - "replicationType": "STANDALONE", - "createdYmdt": "2023-02-13T17:35:20+09:00", - "updatedYmdt": "2023-02-13T17:35:20+09:00" - } - ] + "jobId": "jobId-example" } ``` @@ -539,38 +500,26 @@ GET /v4.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v4.0/db-instance-groups/{dbInstanceGroupId} +GET /v4.0/db-versions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|------------------| -| RDSforMySQL:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|-----------------| -| dbInstanceGroupId | URL | UUID | O | DB 인스턴스 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |

예시

@@ -582,17 +531,11 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "36617a8e-0df8-4b16-b6ea-6306019e95da", - "replicationType": "STANDALONE", - "dbInstances": [ + "dbVersions": [ { - "dbInstanceId": "6d2db0ef-fe9b-4ed4-97b1-d97fcb4cf1b8", - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE" + "restorableFromObs": false } - ], - "createdYmdt": "2023-03-03T17:38:14+09:00", - "updatedYmdt": "2023-03-03T17:38:14+09:00" + ] } ``` @@ -625,8 +568,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `BACKING_UP` | 백업 중 | | `CANCELING` | 취소 중 | | `CREATING` | 생성 중 | -| `CREATING_SCHEMA` | DB 스키마 생성 중 | -| `CREATING_USER` | 사용자 생성 중 | +| `CREATING_SCHEMA` | DB 스키마 생성 중 | +| `CREATING_USER` | 사용자 생성 중 | | `DELETING` | 삭제 중 | | `DELETING_SCHEMA` | DB 스키마 삭제 중 | | `DELETING_USER` | 사용자 삭제 중 | @@ -645,8 +588,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `STARTING` | 시작 중 | | `STOPPING` | 정지 중 | | `SYNCING_SCHEMA` | DB 스키마 동기화 중 | -| `SYNCING_USER` | 사용자 동기화 중 | -| `UPDATING_USER` | 사용자 수정 중 | +| `SYNCING_USER` | 사용자 동기화 중 | +| `UPDATING_USER` | 사용자 수정 중 | ### DB 인스턴스 목록 보기 @@ -654,32 +597,26 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|---------------| -| RDSforMySQL:DbInstance.List | DB 인스턴스 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | -| dbInstances.dbPort | Body | Number | DB 포트 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태 | -| dbInstances.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstances.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstances | Body | Array | DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | +| dbInstances.dbPort | Body | Number | DB 포트 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbInstances.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstances.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -693,17 +630,7 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "createdYmdt": "2023-01-23T12:03:13+09:00", - "updatedYmdt": "2023-02-02T17:20:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -714,51 +641,123 @@ GET /v4.0/db-instances --- -### DB 인스턴스 상세 보기 +### DB 인스턴스 생성하기 ```http -GET /v4.0/db-instances/{dbInstanceId} +POST /v4.0/db-instances ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| authenticationPlugin | Body | Enum | X | 인증 Plugin
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | TLS Option
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE", + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| dbPort | Body | Number | DB 포트 | -| dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| progressStatus | Body | Enum | DB 인스턴스의 현재 작업 진행 상태 | -| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | -| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | -| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | -| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | -| supportAuthenticationPlugin | Body | Boolean | 인증 플러그인 지원 여부 | -| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | -| needMigration | Body | Boolean | 마이그레이션 필요 여부 | -| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -770,27 +769,599 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "dbFlavorId": "e9ed4ef6-78d7-46fa-ace9-32481e97f3b7", - "parameterGroupId": "b03e8b13-de27-4d04-a488-ff5689589372", - "dbSecurityGroupIds": ["01908c35-d2c9-4852-baf0-17f06ec42c03"], - "notificationGroupIds": ["83a62a33-ddbf-4a04-8653-e54463d5b1ac"], - "useDeletionProtection": false, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 오브젝트 스토리지를 이용한 DB 인스턴스 복원 + +```http +POST /v4.0/db-instances/restore-from-obs +``` + +#### 공통 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | +| restore.username | Body | String | O | NHN Cloud 계정 혹은 IAM 멤버 ID | +| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | +| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | +| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "dbVersion": "ENUM_VALUE", + "useHighAvailability": false, + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" + }, + "useDefaultNotification": false, "useSlowQueryAnalysis": true, - "supportAuthenticationPlugin": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 인스턴스 삭제하기 + +```http +DELETE /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| deleteAutoBackup | Body | Boolean | X | 자동 백업 삭제 여부
- 기본값: `false` | + +
예시 +

+ +```json +{ + "deleteAutoBackup": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 인스턴스 상세 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| dbPort | Body | Number | DB 포트 | +| dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | +| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | +| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | +| supportAuthenticationPlugin | Body | Boolean | 인증 plugin 지원 여부 | +| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | +| needMigration | Body | Boolean | 마이그레이션 필요 여부 | +| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "dbFlavorId": "dbFlavorId-example", + "parameterGroupId": "parameterGroupId-example", + "dbSecurityGroupIds": [], + "notificationGroupIds": [], + "useDeletionProtection": false, + "useSlowQueryAnalysis": false, + "supportAuthenticationPlugin": false, "needToApplyParameterGroup": false, "needMigration": false, - "supportDbVersionUpgrade": true, - "createdYmdt": "2022-11-23T12:03:13+09:00", - "updatedYmdt": "2022-12-02T17:20:17+09:00" + "supportDbVersionUpgrade": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ +--- + +### DB 인스턴스 수정하기 + +```http +PUT /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbVersion | Body | Enum | X | DB 엔진 버전 코드 | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | +| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
- 기본값: `false` | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbPort": 1, + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "useSlowQueryAnalysis": false, + "useDummy": false, + "dbSecurityGroupIds": [], + "executeBackup": false, + "useOnlineFailover": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 백업 정보 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backupPeriod | Body | Number | 백업 보관 기간(일) | +| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | +| backupRetryCount | Body | Number | 백업 재시도 횟수 | +| replicationRegion | Body | Enum | 백업 복제 리전
- KR1: `한국(판교)` | +| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration
- HALF_AN_HOUR
- ONE_HOUR
- ONE_HOUR_AND_HALF
- TWO_HOURS
- TWO_HOURS_AND_HALF
- THREE_HOURS | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "backupPeriod": 1, + "ftwrlWaitTimeout": 1, + "backupRetryCount": 1, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +--- + +### 백업 정보 수정하기 + +```http +PUT /v4.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +
예시 +

+ +```json +{ + "backupPeriod": 0, + "ftwrlWaitTimeout": 0, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 바이너리 로그 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/binlogs +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| binLogs | Body | Array | BinLog 파일 목록 | +| binLogs.binLogFileName | Body | String | BinLog 파일 이름 | +| binLogs.binLogFileSize | Body | Number | BinLog 파일 크기 (Byte) | +| binLogs.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "binLogs": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### 바이너리 로그 삭제 + +```http +POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| lastBinLogFileName | Body | String | O | 삭제할 마지막 BinLog 파일 이름 (해당 파일 직전까지 삭제됨) | + +
예시 +

+ +```json +{ + "lastBinLogFileName": "mysql-bin.000010" +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 인증서 파일 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/certificates +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| certificates | Body | Array | 인증서 파일 목록 | +| certificates.fileName | Body | String | 인증서 파일 이름 | +| certificates.certificateType | Body | Enum | 인증서 타입
- CA_FILE
- CERT_FILE
- KEY_FILE | +| certificates.fileSize | Body | Number | 인증서 파일 크기(Byte) | +| certificates.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "certificates": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -799,97 +1370,35 @@ GET /v4.0/db-instances/{dbInstanceId} --- -### DB 인스턴스 생성하기 +### 인증서 파일 내보내기 ```http -POST /v4.0/db-instances +POST /v4.0/db-instances/{dbInstanceId}/certificates/upload ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Create | DB 인스턴스 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|-------|---------|----|---------------------------------------------------------------------| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbUserName | Body | String | O | DB 사용자 계정명 | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- 기본값: `NATIVE`(미지원 시 `CACHING_SHA2`)
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| certificateTypes | Body | Array | O | 업로드할 인증서 타입 목록 | +| tenantId | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 인증서 파일의 경로 |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR" - } - ] - } + "certificateTypes": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -898,149 +1407,194 @@ POST /v4.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 수정하기 +### DB 스키마 목록 보기 ```http -PUT /v4.0/db-instances/{dbInstanceId} +GET /v4.0/db-instances/{dbInstanceId}/db-schemas ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|---------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbPort | Body | Number | X | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbVersion | Body | Enum | X | DB 엔진 유형 | -| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| useReadOnly | Body | Boolean | X | 읽기 전용으로 변경 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSchemas | Body | Array | DB 스키마 목록 | +| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | +| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | +| dbSchemas.createdYmdt | Body | DateTime | 생성 일시 |
예시

```json { - "dbInstanceName": "db-instance2", - "description": "description2", - "dbPort": 10001, - "dbSecurityGroupIds": [], - "executeBackup": true + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbSchemas": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 삭제하기 +### DB 스키마 생성하기 ```http -DELETE /v4.0/db-instances/{dbInstanceId} +POST /v4.0/db-instances/{dbInstanceId}/db-schemas ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Delete | DB 인스턴스 삭제하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaName | Body | String | O | DB 스키마 이름
- 최대 길이: `64`
- 영문 시작, 영문/숫자/_ 허용, 1~64자, MySQL 예약어 불가 | -#### 요청 +
예시 +

+ +```json +{ + "dbSchemaName": "dbSchemaName-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| deleteAutoBackup | Body | Boolean | X | 자동 백업 삭제 여부
- 기본값: `false` | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 재시작하기 +### DB 스키마 삭제하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/restart +DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Restart | DB 인스턴스 재시작하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| useReadOnly | Body | Boolean | X | 읽기 전용으로 변경 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- -### DB 인스턴스 강제 재시작하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/force-restart +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} ``` -#### 필요 권한 +

+
-| 권한명 | 설명 | -|-----------------------------------------------------|------------------| -| RDSforMySQL:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | +--- -#### 요청 +### DB 사용자 목록 보기 -이 API는 요청 본문을 요구하지 않습니다. +```http +GET /v4.0/db-instances/{dbInstanceId}/db-users +``` +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbUsers | Body | Array | DB 사용자 목록 | +| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | +| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | +| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- STABLE
- CREATING
- UPDATING
- SYNCING
- DELETING
- DELETED | +| dbUsers.createdYmdt | Body | DateTime | 생성 일시 | +| dbUsers.updatedYmdt | Body | DateTime | 수정 일시 | +| dbUsers.authenticationPlugin | Body | Enum | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| dbUsers.tlsOption | Body | Enum | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |
예시

@@ -1051,134 +1605,146 @@ POST /v4.0/db-instances/{dbInstanceId}/force-restart "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "dbUsers": [ + { + "tlsOption": "NONE" + } + ] } ```

- --- -### DB 인스턴스 시작하기 +### DB 사용자 생성하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/start +POST /v4.0/db-instances/{dbInstanceId}/db-users ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Start | DB 인스턴스 시작하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| host | Body | String | O | DB 사용자 계정의 호스트명
- 최대 길이: `45` | +| authorityType | Body | Enum | O | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "host": "host-example", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 정지하기 +### DB 사용자 삭제하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/stop +DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Stop | DB 인스턴스 정지하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 복제하기 +### DB 사용자 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/replicate +PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Replicate | DB 인스턴스 복제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록
- 기본값: 원본 DB 인스턴스 값 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: 원본 DB 인스턴스 값 | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 기본값: 원본 DB 인스턴스 값
- 예시: `General SSD` | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전
- 기본값: 원본 DB 인스턴스 값 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00`
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간
- 기본값: 원본 DB 인스턴스 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | +| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| authorityType | Body | Enum | X | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |
예시

```json { - "dbInstanceName": "db-instance-replicate", - "description": "description", - "dbPort": 11000, - "network": { - "availabilityZone": "kr-pub-a" - }, - "storage": { - "stroageSize": 100 - } + "dbPassword": "dbPassword", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" } ``` @@ -1187,147 +1753,117 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 승격하기 +### DB 인스턴스 삭제 보호 설정 변경 ```http -POST /v4.0/db-instances/{dbInstanceId}/promote +PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Promote | DB 인스턴스 승격하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 재구축하기 +### DB 인스턴스 강제 재시작하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/rebuild +POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Rebuild | DB 인스턴스 재구축하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 복원 정보 조회 +### 고가용성 정보 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info +GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | -| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | -| restorableBackups | Body | Array | 복원 가능한 백업 목록 | -| restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | -| restorableBackups.backup.backupName | Body | String | 백업 이름 | -| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | -| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동 | -| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- `BACKING_UP`: 백업 중인 경우
- `COMPLETED`: 백업이 완료된 경우
- `DELETING`: 백업이 삭제 중인 경우
- `DELETED`: 백업이 삭제된 경우
- `ERROR`: 오류가 발생한 경우 | -| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| restorableBackups.backup.dbVersion | Body | String | DB 엔진 유형 | -| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | -| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| restorableBackups.backup.binLogPosition | Body | Number | 바이너리 로그 파일 위치 | -| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | -| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | -| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| useHighAvailability | Body | Boolean | 고가용성 사용 여부
- 기본값: `false` | +| haStatus | Body | Enum | 고가용성 상태
- CREATED: `생성됨`
- STABLE: `정상`
- PAUSING: `일시 중지 중`
- DISABLE: `정지`
- DISABLE_MASTER_IN_REPLICATION: `마스터 비정상 복제 감지로 인한 고가용성 중단`
- DISABLE_MHA_PROCESS: `고가용성 프로세스 중단`
- DISABLE_REPLICATION_STOP: `복제 중단으로 인한 고가용성 중단`
- DISABLE_REPLICATION_DELAY: `복제 지연으로 인한 고가용성 중단`
- FAILOVER_STARTED: `장애 조치 시작`
- FAILOVER_FAILED: `장애 조치 실패`
- FAILOVER_COMPLETED: `장애 조치 완료`
- DELETED: `삭제됨`
- PAUSED: `일시 중지`
- PAUSED_DUE_TO_TASK: `작업으로 인한 일시 중지`
- MASTER_FAILURE_DETECTION: `마스터 장애 감지` | +| pingInterval | Body | Number | Ping 간격(초) | +| pingType | Body | String | Ping 방식 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "oldestRestorableYmdt": "2023-07-09T16:33:33+09:00", - "latestRestorableYmdt": "2023-07-10T15:44:44+09:00", - "restorableBackups": [ - { - "backup": { - "backupId": "145d889a-fe08-474f-8f58-bde576ff96a9", - "backupName": "example-backup-name", - "backupStatus": "COMPLETED", - "dbInstanceId": "dba1be25-9429-4589-9716-7fb6daad7cb9", - "dbInstanceName": "original-db-instance-name", - "dbVersion": "MYSQL_V8028", - "backupType": "MANUAL", - "backupSize": 8299904, - "useBackupLock": true, - "failoverCount": 0, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 367916037, - "createdYmdt": "2023-07-10T15:44:44+09:00", - "updatedYmdt": "2023-07-10T15:46:07+09:00" - }, - "restorableBinLogs": [ - "mysql-bin.000001" - ] - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "useHighAvailability": false, + "haStatus": "CREATED", + "pingInterval": 1, + "pingType": "pingType-example" } ``` @@ -1336,45 +1872,44 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info --- -### 복원될 마지막 쿼리 조회 +### 고가용성 수정하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query +PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|------|----|-----------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restoreType | Query | Enum | O | 복원 타입 종류
- `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
- `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | + +#### 고가용성 사용 시 -#### restoreType이 `TIMESTAMP`인 경우 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-------|----------|----|-------------------------------------------| -| restoreYmdt | Query | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +

예시 +

-#### restoreType이 `BINLOG`인 경우 +```json +{ + "useHighAvailability": false, + "pingInterval": 1 +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------|-------|--------|----|--------------------| -| backupId | Query | UUID | O | 복원에 사용할 백업의 식별자 | -| binLogFileName | Query | String | O | 복원에 사용할 바이너리 로그 이름 | -| binLogPosition | Query | Number | O | 복원에 사용할 바이너리 로그 위치 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|----------|--------------------------------------| -| executedYmdt | Body | DateTime | 쿼리 수행 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| lastQuery | Body | String | 마지막 수행 쿼리 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -1386,8 +1921,7 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query "resultMessage": "SUCCESS", "isSuccessful": true }, - "executedYmdt": "2023-03-17T14:02:29+09:00", - "lastQuery": "INSERT INTO `test`.`test`SET @1='0123'" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1396,368 +1930,142 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query --- -### 복원 +### 고가용성 일시 중지하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/restore +POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Restore | DB 인스턴스 복원하기 | - -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restore | Body | Object | O | 복원 정보 객체 | -| restore.restoreType | Body | Enum | O | 복원 타입 종류
- `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
- `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
- `BACKUP`: 기존에 생성한 백업을 이용한 스냅숏 복원 타입 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 고가용성 사용 시 필수 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a`
- 기본값: 랜덤 선택 | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 예시: `General SSD`
- 기본값: 원본 DB 인스턴스 값 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +이 API는 요청 본문을 요구하지 않습니다. -#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|----------|----|------------------------------------------------------------------------------------------------| -| restore.restoreYmdt | Body | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD)
복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "TIMESTAMP", - "restoreYmdt": "2023-07-10T15:44:44+09:00" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------------|------|--------|----|--------------------| -| restore.backupId | Body | UUID | O | 복원에 사용할 백업의 식별자 | -| restore.binLog | Body | Object | O | 바이너리 로그 정보 객체 | -| restore.binLog.binLogFileName | Body | String | O | 복원에 사용할 바이너리 로그 이름 | -| restore.binLog.binLogPosition | Body | Number | O | 복원에 사용할 바이너리 로그 위치 | - -* 바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그를 복원할 수 있습니다. - +--- -
예시 -

+### 고가용성 복구하기 -```json -{ - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BINLOG", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36", - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 1234567 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } -} +```http +POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` -

-
+#### 요청 -#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|------|------------------------------|-----------------| -| restore.backupId | Body | UUID | O(restoreType이 `BACKUP`인 경우) | 복원에 사용할 백업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BACKUP", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - - --- -### 오브젝트 스토리지로부터 복원 +### 고가용성 다시 시작하기 ```http -POST /v4.0/db-instances/restore-from-obs +POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------------|-------------------------| -| RDSforMySQL:DbInstance.RestoreFromObs | DB 인스턴스 오브젝트 스토리지로부터 복원 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|----------------------------------------------------------------------------------------| -| restore | Body | Object | O | 복원 정보 객체 | -| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | -| restore.username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | -| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | -| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbVersion": "MYSQL_V8028", - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "tenantId":"tenant-id", - "username":"username", - "password":"password", - "targetContainer":"targetContainer", - "objectPath":"objectPath" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - - --- - -### DB 인스턴스 삭제 보호 설정 변경하기 +### 고가용성 분리하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection +POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -1768,7 +2076,8 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1777,58 +2086,31 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection --- -### 고가용성 상태 - -| 상태 | 설명 | -|----------------------------------|---------------------------------| -| `CREATED` | 고가용성이 생성된 경우 | -| `STABLE` | 고가용성이 정상인 경우 | -| `PAUSING` | 고가용성이 일시 중지 중인 경우 | -| `PAUSED` | 고가용성이 일시 중지된 경우 | -| `PAUSED_DUE_TO_TASK` | 작업으로 인해 고가용성이 일시 중지된 경우 | -| `DISABLE_MASTER_IN_REPLICATION` | 마스터 비정상 복제 감지로 고가용성이 중단된 경우 | -| `DISABLE_MHA_PROCESS` | 고가용성 프로세스가 중단된 경우 | -| `DISABLE_REPLICATION_STOP` | 복제 중단으로 인해 고가용성이 중단된 경우 | -| `DISABLE_REPLICATION_DELAY` | 복제 지연으로 인해 고가용성이 중단된 경우 | -| `MASTER_FAILURE_DETECTION` | 마스터 장애가 감지된 경우 | -| `FAILOVER_STARTED` | 장애 조치가 시작된 경우 | -| `FAILOVER_FAILED` | 장애 조치가 실패한 경우 | -| `FAILOVER_COMPLETED` | 장애 조치가 완료된 경우 | -| `DELETED` | 고가용성이 삭제된 경우 | - ---- - -### 고가용성 정보 보기 +### 로그 파일 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/high-availability +GET /v4.0/db-instances/{dbInstanceId}/log-files ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|---------|---------------------------------------------------------------------------------------------------------------------| -| useHighAvailability | Body | Boolean | 고가용성 사용 여부 | -| haStatus | Body | Enum | 고가용성 상태 | -| pingInterval | Body | Number | Ping 간격(초) | -| pingType | Body | Enum | Ping 타입
- `INSERT`
- `SELECT` | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| logFiles | Body | Array | 로그 파일 목록 | +| logFiles.logFileName | Body | String | 로그 파일 이름 | +| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- ERROR
- BINLOG
- GENERAL
- SLOW_QUERY
- AUDIT
- BACKUP | +| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | +| logFiles.createdYmdt | Body | DateTime | 생성 일시 |

예시 -

```json @@ -1838,193 +2120,155 @@ GET /v4.0/db-instances/{dbInstanceId}/high-availability "resultMessage": "SUCCESS", "isSuccessful": true }, - "useHighAvailability": true, - "haStatus": "STABLE", - "pingInterval": 3, - "pingType": "INSERT" + "logFiles": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-
--- -### 고가용성 수정하기 +### 로그 파일 내보내기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/high-availability +POST /v4.0/db-instances/{dbInstanceId}/log-files/export ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Modify | 고가용성 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|---------|----|------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- `INSERT`
- `SELECT` | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 고가용성 사용 시 필수값 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| logFileNames | Body | Array | O | 로그 파일 이름 목록 | +| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | -### 고가용성 다시 시작하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume +```json +{ + "logFileNames": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------| -| RDSforMySQL:HighAvailability.Resume | 고가용성 다시 시작하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### 고가용성 일시 중지하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|--------------| -| RDSforMySQL:HighAvailability.Pause | 고가용성 일시 중지하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 고가용성 복구하기 +### 로그 파일 내용 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair +GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Repair | 고가용성 복구하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| logFileName | URL | UUID | O | 로그 파일 이름 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| content | Body | String | 로그 파일 내용 (최대 65533 bytes) | -### 고가용성 분리하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/split +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "content": "content-example" +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Split | 고가용성 분리하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 데이터 스토리지 정보 보기 +### DB 인스턴스 유지 관리 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/storage-info +GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| type | Query | String | X | | +| statuses | Query | String | X | | +| category | Query | String | X | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|---------|--------------------------------------------------------------------------------------| -| storageType | Body | Enum | 데이터 스토리지 타입 | -| storageSize | Body | Number | 데이터 스토리지 크기(GB) | -| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- `DETACHED`: 부착되지 않음
- `ATTACHED`: 부착됨
- `DELETED`: 삭제됨 | -| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | -| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | -| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 유지 관리 목록 갯수 | +| maintenances | Body | Array | 유지 관리 목록 | +| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| maintenances.description | Body | String | 유지 관리 설명 | +| maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| maintenances.payload | Body | Object | 유지 관리 타입에 따른 Payload | +| maintenances.required | Body | Boolean | 유지 관리 필수 여부 | +| maintenances.deadlineYmdt | Body | DateTime | 유지 관리 강제 적용 일시 | +| maintenances.status | Body | Enum | 유지 관리 상태
- PENDING: `대기`
- READY: `준비`
- RUNNING: `실행 중`
- COMPLETED: `완료`
- FAILED: `실패`
- EXCLUDED: `제외`
- DELETED: `삭제`
- UNKNOWN | +| maintenances.executionType | Body | Enum | 유지 관리 실행 타입
- SCHEDULED: `예약 실행 (유지 관리 기간 자동 실행)`
- MANUAL: `수동 실행 (즉시 실행)`
- FORCED: `강제 실행 (데드라인 초과 자동 실행)` | +| maintenances.addedYmdt | Body | DateTime | 유지 관리 스케줄 등록 일시 | +| maintenances.executionStartedYmdt | Body | DateTime | 유지 관리 시작 일시 | +| maintenances.executionCompletedYmdt | Body | DateTime | 유지 관리 종료 일시 |
예시

@@ -2036,89 +2280,58 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "General SSD", - "storageSize": 20, - "storageStatus": "ATTACHED", - "storageAutoscale": { - "useStorageAutoscale": true, - "threshold": 80, - "maxStorageSize": 100, - "cooldownTime": 10 - } + "totalCounts": 1, + "maintenances": [ + { + "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

- --- -### 데이터 스토리지 정보 수정하기 +### DB 인스턴스 유지 관리 즉시 실행하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/storage-info +POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: 현재값
- 최댓값: `2048` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### 백업 정보 보기 - -```http -GET /v4.0/db-instances/{dbInstanceId}/backup-info -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|---------|----------------| -| backupPeriod | Body | Number | 백업 보관 기간(일) | -| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | -| backupRetryCount | Body | Number | 백업 재시도 횟수 | -| replicationRegion | Body | Enum | 백업 복제 리전 | -| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | -| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2130,65 +2343,42 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "backupPeriod": 1, - "ftwrlWaitTimeout": 1800, - "backupRetryCount": 0, - "replicationRegion": null, - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### 백업 정보 수정하기 +### DB 인스턴스 유지 관리 예약하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/backup-info +POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------------------------|------|---------|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload |
예시

```json { - "backupPeriod": 5, - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndBgnTime": "01:00:00", - "backupWndDuration": "TWO_HOURS" - } - ] + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" } ``` @@ -2197,45 +2387,58 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 네트워크 정보 보기 +### DB 인스턴스 유지 관리 삭제하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/network-info +DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| maintenanceId | URL | UUID | O | 유지 관리 아이디 | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 네트워크 정보 보기 -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | +```http +GET /v4.0/db-instances/{dbInstanceId}/network-info +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------------------------------------------------------------------------------------------------------------------------------| -| availabilityZone | Body | Enum | DB 인스턴스를 생성할 가용성 영역 | -| subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | UUID | 서브넷의 식별자 | -| subnet.subnetName | Body | UUID | 서브넷을 식별할 수 있는 이름 | -| subnet.subnetCidr | Body | UUID | 서브넷의 CIDR | -| endPoints | Body | Array | 접속 정보 목록 | -| endPoints.domain | Body | String | 도메인 | -| endPoints.ipAddress | Body | String | IP 주소 | -| endPoints.endPointType | Body | Enum | 접속 정보 타입
-`EXTERNAL`: 외부 접속 도메인
-`INTERNAL`: 내부 접속 도메인
-`PUBLIC`: (Deprecated) 외부 접속 도메인
-`PRIVATE`: (Deprecated) 내부 접속 도메인 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | +| subnet | Body | Object | 서브넷 객체 | +| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnet.subnetCidr | Body | String | 서브넷의 CIDR | +| endPoints | Body | Array | 접속 정보 목록 | +| endPoints.domain | Body | String | 도메인 | +| endPoints.ipAddress | Body | String | IP 주소 | +| endPoints.endPointType | Body | String | 접속 정보 타입 |

예시

@@ -2247,17 +2450,15 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "kr-pub-a", + "availabilityZone": "availabilityZone-example", "subnet": { - "subnetId": "bd453789-34ae-416c-9f78-05b9e43a46be", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/16" + "subnetId": "subnetId-example", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example" }, "endPoints": [ { - "domain": "ea548a78-d85f-43b4-8ddf-c88d999b9905.internal.kr1.mysql.rds.nhncloudservice.com", - "ipAddress": "192.168.0.2", - "endPointType": "INTERNAL" + "endPointType": "endPointType-example" } ] } @@ -2274,61 +2475,30 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | -### DB 사용자 목록 보기 +

예시 +

-```http -GET /v4.0/db-instances/{dbInstanceId}/db-users +```json +{ + "usePublicAccess": false +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|---------------------| -| RDSforMySQL:DbInstanceUser.List | DB 인스턴스 내 사용자 목록 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|-----------------------------------------------------------------------------------------------------------------------------| -| dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | -| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | -| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | -| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `UPDATING`: 수정 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbUsers.authenticationPlugin | Body | Enum | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| dbUsers.tlsOption | Body | Enum | TLS Option
- NONE
- SSL
- X509 | -| dbUsers.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbUsers.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2340,19 +2510,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbUsers": [ - { - "dbUserId": "4b3d530b-fd02-4d59-a620-83d019a67bbb", - "dbUserName": "db-user", - "host": "%", - "authorityType": "DDL", - "dbUserStatus": "STABLE", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE", - "createdYmdt": "2023-03-17T14:02:29+09:00", - "updatedYmdt": "2023-03-17T14:02:31+09:00" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2361,164 +2519,180 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users --- -### DB 사용자 생성하기 +### DB 인스턴스 승격하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-users +POST /v4.0/db-instances/{dbInstanceId}/promote ``` +#### 요청 -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Create | DB 인스턴스 내 사용자 생성하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserName | Body | String | O | DB 사용자 계정 이름
- 최소 길이: `1`
- 최대 길이: `32` | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| host | Body | String | O | DB 사용자 계정의 호스트명
- 예시: `1.1.1.%` | -| authorityType | Body | Enum | O | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- 기본값: `NATIVE`(미지원 시 `CACHING_SHA2`)
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | +#### 응답 -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 설정할 수 있습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "dbUserName": "db-user", - "dbPassword": "password", - "host": "1.1.1.%", - "authorityType": "CRUD", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 수정하기 +### DB 인스턴스 재구축하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Modify | DB 인스턴스 내 사용자 수정하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | -| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| authorityType | Body | Enum | X | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | +#### 응답 -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 수정할 수 있습니다. -> `authenticationPlugin`의 값은 `dbPassword`와 동시에 수정을 해야 합니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "authorityType": "DDL" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 삭제하기 +### DB 인스턴스 복제하기 ```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +POST /v4.0/db-instances/{dbInstanceId}/replicate ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Delete | DB 인스턴스 내 사용자 삭제하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +#### 공통 요청 ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부 | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | X | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | X | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -### DB 스키마 목록 보기 +
예시 +

-```http -GET /v4.0/db-instances/{dbInstanceId}/db-schemas +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|---------------------| -| RDSforMySQL:DbInstanceSchema.List | DB 인스턴스 내 스키마 목록 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|------------------------------------------------------------------------------------------------------| -| dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | -| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | -| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbSchemas.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2530,14 +2704,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSchemas": [ - { - "dbSchemaId": "7c9a94b8-86c1-435d-8af2-82a5e9d53fd4", - "dbSchemaName": "schema", - "dbSchemaStatus": "STABLE", - "createdYmdt": "2023-03-20T13:37:45+09:00" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2546,93 +2713,99 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas --- -### DB 스키마 생성하기 +### DB 인스턴스 재시작하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-schemas +POST /v4.0/db-instances/{dbInstanceId}/restart ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceSchema.Create | DB 인스턴스 내 스키마 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaName | Body | String | O | DB 스키마 이름 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | -### DB 스키마 삭제하기 +

예시 +

-```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +```json +{ + "useOnlineFailover": false, + "executeBackup": false, + "waitReplicationDelay": false, + "useReadOnly": false +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceSchema.Delete | DB 인스턴스 내 스키마 삭제하기 | +

+
-#### 요청 +#### 응답 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | +
예시 +

-#### 응답 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 로그 파일 목록 보기 +### DB 인스턴스 복원 정보 조회 ```http -GET /v4.0/db-instances/{dbInstanceId}/log-files +GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|-----------------------| -| RDSforMySQL:DbInstanceLog.List | DB 인스턴스 내 로그 파일 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|-------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileTypes | Query | Array | X | 로그 파일 타입 종류 목록
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| logFiles | Body | Array | 로그 파일 목록 | -| logFiles.logFileName | Body | String | 로그 파일명 | -| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | -| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | -| logFiles.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | +| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | +| restorableBackups | Body | Array | 복원 가능한 백업 목록 | +| restorableBackups.backup | Body | Object | 백업 정보 객체 | +| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupName | Body | String | 백업 이름 | +| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | +| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | +| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | +| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | +| restorableBackups.backup.binLogPosition | Body | Object | 바이너리 로그 파일 위치 | +| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | +| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | +| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 |
예시

@@ -2644,12 +2817,11 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files "resultMessage": "SUCCESS", "isSuccessful": true }, - "logFiles": [ + "oldestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "restorableBackups": [ { - "logFileName": "xtra_full.log-20230317", - "logFileType": "BACKUP", - "logFileSize": 4096, - "createdYmdt": "2023-03-17T14:02:29+09:00" + "restorableBinLogs": [] } ] } @@ -2660,33 +2832,26 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files --- -### 로그 파일 내용 보기 +### 복원될 마지막 쿼리 조회 ```http -GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} +GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|-----------------------| -| RDSforMySQL:DbInstanceLog.Get | DB 인스턴스 내 로그 파일 내용 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|--------|----|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileName | URL | String | O | 로그 파일명 | -| logFileType | Query | Enum | O | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------|------|--------|---------------------------| -| content | Body | String | 로그 파일 내용(최대 65533 Bytes) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| executedYmdt | Body | DateTime | 쿼리 수행 일시 | +| lastQuery | Body | String | 마지막 수행 쿼리 |

예시

@@ -2698,7 +2863,8 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} "resultMessage": "SUCCESS", "isSuccessful": true }, - "content": "..." + "executedYmdt": "2023-12-31T15:00:00+09:00", + "lastQuery": "lastQuery-example" } ``` @@ -2707,84 +2873,188 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} --- -### 로그 파일 내보내기 +### DB 인스턴스 복원 ```http -POST /v4.0/db-instances/{dbInstanceId}/log-files/export +POST /v4.0/db-instances/{dbInstanceId}/restore +``` + +#### 공통 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미입력 시 원본 인스턴스의 사양이 적용됩니다. | +| dbPort | Body | Number | X | DB 포트 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | X | 스토리지 정보 객체. 미입력 시 원본 인스턴스의 스토리지 설정이 적용됩니다. | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미입력 시 원본 인스턴스의 스토리지 타입이 적용됩니다. | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미입력 시 원본 인스턴스의 스토리지 크기가 적용됩니다.
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | X | 네트워크 정보 객체. 미입력 시 원본 인스턴스의 네트워크 설정이 적용됩니다. | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미입력 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미입력 시 랜덤 선택 | +| backup | Body | Object | X | 백업 정보 객체. 미입력 시 원본 인스턴스의 백업 설정이 적용됩니다. | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미입력 시 원본 인스턴스의 백업 보관 기간이 적용됩니다.
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미입력 시 원본 인스턴스의 백업 스케쥴이 적용됩니다. | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.restoreType | Body | Enum | O | 복원 타입
- TIMESTAMP: `복원 가능한 시간 이내의 시간을 이용한 시점 복원`
- BINLOG: `복원 가능한 바이너리 로그 위치를 이용한 시점 복원`
- BACKUP: `기존에 생성한 백업을 이용한 스냅숏 복원` | +| restore.binLog.binLogFileName | Body | String | X | 복원에 사용할 바이너리 로그 이름 | +| restore.binLog.binLogPosition | Body | Object | X | 복원에 사용할 바이너리 로그 위치 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미입력 시 원본 인스턴스의 파라미터 그룹이 적용됩니다. | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록. 미입력 시 원본 인스턴스의 보안 그룹이 적용됩니다. | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | + +#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.restoreYmdt | Body | DateTime | X | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | + +복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. + +#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | +| restore.binLog | Body | Object | X | 복원에 사용할 바이너리 로그 정보 객체 | + +바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. + +#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "useHighAvailability": false, + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "restoreType": "TIMESTAMP", + "binLog": { + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + } + } + }, + "useDefaultNotification": false, + "useSlowQueryAnalysis": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|----------------------| -| RDSforMySQL:DbInstanceLog.Export | DB 인스턴스 내 로그 파일 내보내기 | +

+
-#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|--------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileNames | Body | Array | O | 로그 파일명 목록
- 최소 크기: `1` | -| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "logFileNames": ["xtra_full.log-20230317"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "logs/backup" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### BinLog 목록 보기 +### DB 인스턴스 시작하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/binlogs +POST /v4.0/db-instances/{dbInstanceId}/start ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|---------------| -| RDSforMySQL:DbInstanceBinLog.List | BinLog 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|---------|----|---------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| deletable | Query | Boolean | X | 삭제 가능한 BinLog만 조회할지 여부
- `true`: 마지막 BinLog 제외
- `false`: 전체
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|----------|-----------------------------------| -| binLogs | Body | Array | BinLog 파일 목록 | -| binLogs.binLogFileName | Body | String | BinLog 파일명 | -| binLogs.binLogFileSize | Body | Number | BinLog 파일 크기(Byte) | -| binLogs.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2796,13 +3066,7 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs "resultMessage": "SUCCESS", "isSuccessful": true }, - "binLogs": [ - { - "binLogFileName": "mysql-bin.000001", - "binLogFileSize": 1073741824, - "createdYmdt": "2023-03-17T14:02:29+09:00" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2811,40 +3075,25 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs --- -### BinLog 삭제 +### DB 인스턴스 정지하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge +POST /v4.0/db-instances/{dbInstanceId}/stop ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|------------| -| RDSforMySQL:DbInstanceBinLog.Purge | BinLog 삭제 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| lastBinLogFileName | Body | String | O | 삭제할 마지막 BinLog 파일명(해당 파일 직전까지 삭제됩니다) | - -

예시 -

- -```json -{ - "lastBinLogFileName": "mysql-bin.000010" -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2855,7 +3104,8 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2864,35 +3114,32 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge --- -### 인증서 파일 목록 보기 +### 스토리지 정보 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/certificates +GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|---------------| -| RDSforMySQL:DbInstanceCertificate.List | 인증서 파일 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|---------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|------------------------------------------------------------------------------| -| certificates | Body | Array | 인증서 파일 목록 | -| certificates.fileName | Body | String | 인증서 파일명 | -| certificates.certificateType | Body | Enum | 인증서 타입
- `CA_FILE`: CA 인증서
- `CERT_FILE`: 인증서
- `KEY_FILE`: 비밀 키 | -| certificates.fileSize | Body | Number | 인증서 파일 크기(Byte) | -| certificates.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageType | Body | String | 데이터 스토리지 타입 | +| storageSize | Body | Number | 데이터 스토리지 크기(GB) | +| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- DELETED: `삭제됨`
- PENDING_DELETION: `삭제 유예됨`
- DELETION_RESERVED: `삭제 예약됨 (스냅샷 정리 대기)`
- DETACHED: `해제됨`
- ATTACHED: `할당됨` | +| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | +| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | +| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | +| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) |

예시

@@ -2904,14 +3151,15 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates "resultMessage": "SUCCESS", "isSuccessful": true }, - "certificates": [ - { - "fileName": "ca.pem", - "certificateType": "CA_FILE", - "fileSize": 2048, - "createdYmdt": "2023-03-17T14:02:29+09:00" - } - ] + "storageType": "storageType-example", + "storageSize": 1, + "storageStatus": "DELETED", + "storageAutoscale": { + "useStorageAutoscale": false, + "threshold": 1, + "maxStorageSize": 1, + "cooldownTime": 1 + } } ``` @@ -2920,41 +3168,38 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates --- -### 인증서 파일 내보내기 +### 스토리지 정보 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/certificates/upload +PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|----------------------------------------------------------|-------------| -| RDSforMySQL:DbInstanceCertificate.Export | 인증서 파일 내보내기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최댓값: `2048` | +| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -#### 요청 +#### 스토리지 자동 확장 사용 시 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|--------|----|------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| certificateTypes | Body | Array | O | 업로드할 인증서 타입
- `CA_FILE`: CA 인증서
- `CERT_FILE`: 인증서
- `KEY_FILE`: 비밀 키 | -| tenantId | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 인증서 파일의 경로 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |

예시

```json { - "certificateTypes": ["CA_FILE", "CERT_FILE", "KEY_FILE"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "certificates/" + "storageSize": 1, + "storageAutoscale": { + "useStorageAutoscale": false + } } ``` @@ -2963,67 +3208,10 @@ POST /v4.0/db-instances/{dbInstanceId}/certificates/upload #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | - -### 백업 상세 보기 - -```http -GET /v4.0/backups/{backupId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------|----------| -| RDSforMySQL:Backup.Get | 백업 상세 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------------------------|------|----------|-----------------| -| backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | UUID | 백업의 식별자 | -| backup.regionCode | Body | Enum | 리전 코드 | -| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backup.backupStatus | Body | Enum | 백업의 현재 상태 | -| backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| backup.dbVersion | Body | Enum | DB 엔진 버전 | -| backup.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backup.backupType | Body | Enum | 백업 유형 | -| backup.backupMethodType | Body | Enum | 백업 방식 | -| backup.backupFileType | Body | Enum | 백업 파일 유형 | -| backup.backupSize | Body | Number | 백업의 크기(Byte) | -| backup.isReplicable | Body | Boolean | 복제 가능 여부 | -| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| backup.binLogPosition | Body | Number | 바이너리 로그 위치 | -| backup.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| backup.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -

예시

@@ -3034,25 +3222,7 @@ GET /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "backup": { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "regionCode": "KR1", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbInstanceName": "db-instance", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupMethodType": "FULL", - "backupFileType": "XTRA_BACKUP", - "backupSize": 4996786, - "isReplicable": true, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 154, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" - } + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3061,46 +3231,27 @@ GET /v4.0/backups/{backupId} --- -### 백업 목록 조회 +## DB 인스턴스 그룹 + +### DB 인스턴스 그룹 목록 보기 ```http -GET /v4.0/backups +GET /v4.0/db-instance-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Backup.List | 백업 목록 조회 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | -| backupType | Query | Enum | X | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동
- 기본값: 전체 | -| dbInstanceId | Query | UUID | X | 원본 DB 인스턴스의 식별자 | -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|-----------------------------------| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | UUID | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태 | -| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형 | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3112,19 +3263,9 @@ GET /v4.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "backups": [ + "dbInstanceGroups": [ { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupSize": 4996786, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -3135,313 +3276,173 @@ GET /v4.0/backups --- -### 백업 생성하기 +### DB 인스턴스 그룹 상세 보기 ```http -POST /v4.0/backups +GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Create | 백업 생성하기 | - -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|--------|----|--------------------------------------------------------------------------------------| -| backupName | Body | String | O | 백업을 식별할 수 있는 이름 | -| backupMethodType | Body | Enum | O | 백업 방식 타입 종류
- `FULL`: 전체 백업
- `INCREMENTAL`: 증분 백업
- `SNAPSHOT`: 스냅숏 백업 | +이 API는 요청 본문을 요구하지 않습니다. -#### 전체 백업(backupMethodType이 `FULL`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|--------------| -| dbInstanceId | Body | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "backupName": "example-backup-name", - "backupMethodType": "FULL", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 증분 백업(backupMethodType이 `INCREMENTAL`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|------------| -| baseBackupId | Body | UUID | O | 기준 백업의 식별자 | +--- +## DB 인스턴스 사양 -
예시 -

+### DB 인스턴스 사양 목록 보기 -```json -{ - "backupName": "example-backup-name", - "backupMethodType": "INCREMENTAL", - "baseBackupId": "3ae7914f-9b42-4729-b125-87417b72cf36" -} +```http +GET /v4.0/db-flavors ``` -

-
- +#### 요청 -#### 스냅숏 백업(backupMethodType이 `SNAPSHOT`인 경우) +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|--------------| -| dbInstanceId | Body | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

```json { - "backupName": "example-backup-name", - "backupMethodType": "SNAPSHOT", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ```

- -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 백업 내보내기 +## 가용성 영역 + +### 가용성 영역 목록 보기 ```http -POST /v4.0/backups/{backupId}/export +GET /v4.0/availability-zones ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Export | 백업 내보내기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | - -
예시 -

- -```json -{ - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - -> [주의] -> 수동 백업의 경우 백업이 수행된 DB 인스턴스가 존재하지 않으면, 백업을 오브젝트 스토리지로 내보낼 수 없습니다. - ---- - -### 백업 복원하기 - -```http -POST /v4.0/backups/{backupId}/restore -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------| -| RDSforMySQL:Backup.Restore | 백업 복원하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Integer | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a`
- 기본값: 랜덤 선택 | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 예시: `General SSD`
- 기본값: 원본 DB 인스턴스 값 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: 원본 DB 인스턴스 값 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZones | Body | Array | 가용성 영역 목록 | +| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | +| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | +| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 |
예시

```json - { - "dbInstanceName": "db-instance-restore", - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbPort": 10000, - "parameterGroupId": "132d383c-38e3-468a-a826-5e9a8fff15d0", - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "HALF_AN_HOUR" + "availabilityZones": [ + { + "zoneState": { + "available": false } - ] - } + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### 백업 삭제하기 - -```http -DELETE /v4.0/backups/{backupId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Delete | 백업 삭제하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 네트워크 -### DB 보안 그룹 목록 보기 +### 서브넷 목록 보기 ```http -GET /v4.0/db-security-groups -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|----------------| -| RDSforMySQL:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | +GET /v4.0/network/subnets +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-----------------------------------| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |
예시

@@ -3453,14 +3454,9 @@ GET /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "subnets": [ { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2022-02-19T19:18:13+09:00" + "availableIpCount": 1 } ] } @@ -3471,48 +3467,23 @@ GET /v4.0/db-security-groups --- -### DB 보안 그룹 상세 보기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -GET /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/storage-types ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|----------------| -| RDSforMySQL:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|----------|--------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다.
- `PORT`: 지정된 포트값으로 설정됩니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | 허용할 트래픽의 원격 소스 | -| rules.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| rules.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

@@ -3524,30 +3495,7 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "rules": [ - { - "ruleId": "17c88ef6-95f1-4678-84f9-fee1b22e250d", - "description": "description", - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } - ], - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } + "storageTypes": [] } ``` @@ -3556,106 +3504,41 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 생성하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v4.0/db-security-groups +GET /v4.0/metric-statistics ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 필요하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. - -

예시 -

- -```json -{ - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "rules": [ - { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0" - } - ] -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|------|---------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 보안 그룹 수정하기 +### Metric 목록 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/metrics ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|-----------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | - -
예시 -

- -```json -{ - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -3666,39 +3549,58 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "metrics": [ + { + "unit": "unit-example" + } + ] } ```

- --- -### DB 보안 그룹 삭제하기 +## 백업 -```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId} -``` +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | -#### 필요 권한 +### 백업 목록 조회 -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | +```http +GET /v4.0/backups +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3709,7 +3611,13 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "totalCounts": 1, + "backups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -3718,48 +3626,30 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 규칙 생성하기 +### 백업 생성하기 ```http -POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v4.0/backups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 필요하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | +| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | +| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT", - "minPort": 10000, - "maxPort": 10000 - }, - "cidr": "0.0.0.0/0" + "backupName": "backupName", + "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "backupMethodType": "FULL" } ``` @@ -3768,131 +3658,49 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### DB 보안 그룹 규칙 수정하기 - -```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleId | URL | UUID | O | DB 보안 그룹 규칙의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 필요하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. -

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "DB_PORT" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "0.0.0.0/0" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 보안 그룹 규칙 삭제하기 +### 백업 삭제하기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules +DELETE /v4.0/backups/{backupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|-------|----|---------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleIds | Query | Array | O | DB 보안 그룹 규칙의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 - -```http -GET /v4.0/parameter-groups -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.List | 파라미터 그룹 목록 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------|-------|------|----|----------| -| dbVersion | Query | Enum | X | DB 엔진 유형 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-------------------------------------------------------------------| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -
예시

@@ -3903,67 +3711,51 @@ GET /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroups": [ - { - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "createdYmdt": "2023-02-31T15:28:17+09:00", - "updatedYmdt": "2023-02-31T15:28:17+09:00" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### 파라미터 그룹 상세 보기 +### 백업 단건 조회 ```http -GET /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/backups/{backupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.Get | 파라미터 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|--------------------------------------------------------------------------------------------------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | UUID | 파라미터 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- `CLIENT`: client
- `MYSQL`: mysql
- `MYSQLD`: mysqld | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일명 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- `VARIABLE`: 언제든 수정 가능
- `CONSTANT`: 수정 불가능
- `INIT_VARIABLE`: DB 인스턴스 생성 시에만 수정 가능 | -| parameters.applyType | Body | Enum | 적용 타입
- `SESSION`: 세션 적용
- `FILE`: 설정 파일 적용(재시작 필요)
- `BOTH`: 전체(재시작 필요) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backup | Body | Object | 백업 상세 정보 | +| backup.backupId | Body | String | 백업의 식별자 | +| backup.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | +| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| backup.dbVersion | Body | Enum | DB 엔진 버전 | +| backup.utilVersion | Body | String | 유틸리티 버전 | +| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | +| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | +| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | +| backup.backupSize | Body | Number | 백업의 크기(Byte) | +| backup.isReplicable | Body | Boolean | 복제 가능 여부 | +| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | +| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | +| backup.createdYmdt | Body | DateTime | 생성 일시 | +| backup.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3975,62 +3767,61 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "parameters": [ - { - "parameterId": "fa040b5e-f29f-46de-8f0d-bba4cb82887a", - "parameterFileGroup": "client", - "parameterName": "socket", - "fileParameterName": "socket", - "value": "/home/tcrds/db/mysql/tmp/mysql.sock", - "defaultValue": "/home/tcrds/db/mysql/tmp/mysql.sock", - "allowedValue": "", - "updateType": "CONSTANT", - "applyType": "BOTH" - } - ], - "createdYmdt": "2023-03-13T11:02:28+09:00", - "updatedYmdt": "2023-03-13T11:02:28+09:00" + "backup": { + "backupId": "backupId-example", + "regionCode": "KR1", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupMethodType": "FULL", + "backupFileType": "XBSTREAM", + "backupSize": 1, + "isReplicable": false, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ```

- --- -### 파라미터 그룹 생성하기 +### 백업 내보내기 ```http -POST /v4.0/parameter-groups +POST /v4.0/backups/{backupId}/export ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Create | 파라미터 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |
예시

```json { - "parameterGroupName": "parameter-group", - "dbVersion": "MYSQL_V8028" + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -4039,39 +3830,126 @@ POST /v4.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
--- -### 파라미터 그룹 복사하기 +### 백업 복원하기 ```http -POST /v4.0/parameter-groups/{parameterGroupId}/copy +POST /v4.0/backups/{backupId}/restore ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Copy | 파라미터 그룹 복사하기 | - -#### 요청 +#### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | +| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |
예시

```json { - "parameterGroupName": "parameter-group-copy", - "description": "copy" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } } ``` @@ -4080,47 +3958,51 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | - ---- - -### 파라미터 그룹 수정하기 - -```http -PUT /v4.0/parameter-groups/{parameterGroupId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "parameterGroupName": "parameter-group" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

+--- + +## 사용자 그룹 + +### 사용자 그룹 목록 보기 + +```http +GET /v4.0/user-groups +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4131,7 +4013,13 @@ PUT /v4.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "totalCounts": 1, + "userGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -4140,38 +4028,28 @@ PUT /v4.0/parameter-groups/{parameterGroupId} --- -### 파라미터 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/parameters +POST /v4.0/user-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------|------|--------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "modifiedParameters": [ - { - "parameterId": "3abac558-7274-44e1-9f4a-f100f53f67ba", - "value": "0" - } - ] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ``` @@ -4180,7 +4058,9 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

@@ -4191,7 +4071,8 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "userGroupId": "userGroupId-example" } ``` @@ -4200,27 +4081,51 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters --- -### 파라미터 그룹 재설정하기 +### 사용자 그룹 삭제하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/reset +DELETE /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 -| 권한명 | 설명 | -|--------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | +```http +GET /v4.0/user-groups/{userGroupId} +``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4231,7 +4136,17 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ + { + "memberId": "memberId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4240,75 +4155,65 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset --- -### 파라미터 그룹 삭제하기 +### 사용자 그룹 수정하기 ```http -DELETE /v4.0/parameter-groups/{parameterGroupId} +PUT /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 사용자 그룹 +## 알림 그룹 -### 사용자 그룹 목록 보기 +### 알림 그룹 목록 보기 ```http -GET /v4.0/user-groups +GET /v4.0/notification-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|--------------| -| RDSforMySQL:UserGroup.List | 사용자 그룹 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|-----------------------------------| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4320,12 +4225,9 @@ GET /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "notificationGroups": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -4336,37 +4238,45 @@ GET /v4.0/user-groups --- -### 사용자 그룹 상세 보기 +### 알림 그룹 생성하기 ```http -GET /v4.0/user-groups/{userGroupId} +POST /v4.0/notification-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------------|--------------| -| RDSforMySQL:UserGroup.Get | 사용자 그룹 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], + "userGroupIds": [] +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|----------|-----------------------------------------------------------------------------------------------------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
`ENTIRE`: 프로젝트 멤버 전체를 포함하는 사용자 그룹
`INDIVIDUAL_MEMBER`: 특정 프로젝트 멤버를 포함하는 사용자 그룹 | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 |
예시

@@ -4378,16 +4288,7 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "userGroupTypeCode": "INDIVIDUAL_MEMBER", - "members": [ - { - "memberId": "1321e759-2ef3-4b85-9921-b13e918b24b5" - } - ], - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -4396,96 +4297,57 @@ GET /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 생성하기 +### 알림 그룹 삭제하기 ```http -POST /v4.0/user-groups +DELETE /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Create | 사용자 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|-----------------------------------------------------------| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록
`selectAll`이 true인 경우 해당 필드 값은 무시됩니다 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 여부
true인 경우 해당 그룹은 전체 멤버를 대상으로 설정됩니다 | - -

예시 -

- -```json -{ - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5" - ] -} -``` - -```json -{ - "userGroupName": "dev-team", - "selectAll": true -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------|------|------|-------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 사용자 그룹 수정하기 +### 알림 그룹 상세 보기 ```http -PUT /v4.0/user-groups/{userGroupId} +GET /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Modify | 사용자 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|----------------------------------------------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | -| userGroupName | Body | String | X | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 여부
true인 경우 해당 그룹은 전체 멤버를 대상으로 설정됩니다 | - -
예시 -

- -```json -{ - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5", - "f9064b09-2b15-442e-a4b0-3a5a2754555e" - ] -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4496,7 +4358,24 @@ PUT /v4.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ + { + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4505,59 +4384,67 @@ PUT /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 삭제하기 +### 알림 그룹 수정하기 ```http -DELETE /v4.0/user-groups/{userGroupId} +PUT /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Delete | 사용자 그룹 삭제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 알림 그룹 +## 이벤트 -### 알림 그룹 목록 보기 +### 이벤트 카테고리 -```http -GET /v4.0/notification-groups -``` +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. + +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -#### 필요 권한 +### 구독 가능한 이벤트 코드 목록 보기 -| 권한명 | 설명 | -|----------------------------------------------------|-------------| -| RDSforMySQL:NotificationGroup.List | 알림 그룹 목록 보기 | +```http +GET /v4.0/event-codes +``` #### 요청 @@ -4565,16 +4452,11 @@ GET /v4.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------------|------|----------|-----------------------------------| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |
예시

@@ -4586,15 +4468,9 @@ GET /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ + "eventCodes": [ { - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "eventCategoryType": "ALL" } ] } @@ -4605,43 +4481,30 @@ GET /v4.0/notification-groups --- -### 알림 그룹 상세 보기 +### 이벤트 목록 조회 ```http -GET /v4.0/notification-groups/{notificationGroupId} +GET /v4.0/events ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|-------------| -| RDSforMySQL:NotificationGroup.Get | 알림 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------------|------|----------|-----------------------------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

@@ -4653,25 +4516,12 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "dbInstances": [ - { - "dbInstanceId": "ed5cb985-526f-4c54-9ae0-40288593de65", - "dbInstanceName": "database" - } - ], - "userGroups": [ + "totalCounts": 1, + "events": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team" + "eventYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + ] } ``` @@ -4680,42 +4530,52 @@ GET /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 생성하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v4.0/notification-groups +GET /v4.0/event-subscriptions ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Create | 알림 그룹 생성하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------------| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |

예시

```json { - "notificationGroupName": "dev-team-noti", - "notifyEmail": false, - "isEnable": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65" - ], - "userGroupIds": [ - "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } ] } ``` @@ -4723,48 +4583,46 @@ POST /v4.0/notification-groups

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|------|------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | - --- -### 알림 그룹 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v4.0/notification-groups/{notificationGroupId} +POST /v4.0/event-subscriptions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Modify | 알림 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부 | -| notifySms | Body | Boolean | X | SMS 알림 여부 | -| isEnabled | Body | Boolean | X | 활성화 여부 | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "notifyEmail": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65", - "d51b7da0-682f-47ff-b588-b739f6adc740" - ] + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ``` @@ -4773,7 +4631,9 @@ PUT /v4.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -4784,7 +4644,8 @@ PUT /v4.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -4793,73 +4654,121 @@ PUT /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 삭제하기 +### 이벤트 구독 삭제하기 ```http -DELETE /v4.0/notification-groups/{notificationGroupId} +DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Delete | 알림 그룹 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v4.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 모니터링 +## 작업 정보 -### Metric 목록 보기 +### 작업 상태 -```http -GET /v4.0/metrics -``` +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | -#### 필요 권한 +### 작업 정보 상세 보기 -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Metric.List | 통계 정보 조회 | +```http +GET /v4.0/jobs/{jobId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|--------|-----------| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | Enum | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4871,12 +4780,15 @@ GET /v4.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ { - "measureName": "CPU_USAGE", - "unit": "%" + "resourceId": "resourceId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4885,62 +4797,47 @@ GET /v4.0/metrics --- -### 통계 정보 조회 +## 파라미터 그룹 + +### 파라미터 그룹 목록 보기 ```http -GET /v4.0/metric-statistics +GET /v4.0/parameter-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Metric.List | 통계 정보 조회 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|----------|----|-----------------------------------| -| dbInstanceId | Query | UUID | O | DB 인스턴스의 식별자 | -| measureNames | Query | Array | O | 조회 지표 목록
- 최소 크기: `1` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| interval | Query | Number | X | 조회 간격 | +이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|-----------|----------| -| metricStatistics | Body | Array | 통계 정보 목록 | -| metricStatistics.measureName | Body | Enum | 측정 항목 유형 | -| metricStatistics.unit | Body | String | 측정값 단위 | -| metricStatistics.values | Body | Array | 측정값 목록 | -| metricStatistics.values.timestamp | Body | Timestamp | 측정 시간 | -| metricStatistics.values.value | Body | Object | 측정값 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 파라미터 그룹 수 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "metricStatistics": [ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "parameterGroups": [ { - "measureName": "MYSQL_STATUS", - "unit": "", - "values": [ - [ - 1679298540, - "1" - ], - [ - 1679298600, - "1" - ], - [ - 1679298660, - "1" - ] - ] + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -4951,62 +4848,39 @@ GET /v4.0/metric-statistics --- -## 이벤트 - -### 이벤트 카테고리 - -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. - -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | - -### 이벤트 목록 조회 +### 파라미터 그룹 생성하기 ```http -GET /v4.0/events +POST /v4.0/parameter-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMySQL:Event.List | 이벤트 목록 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| eventCategoryType | Query | Enum | O | 조회할 이벤트 카테고리 유형
- `ALL`: 전체
- `INSTANCE`: DB 인스턴스
- `BACKUP`: 백업
- `DB_SECURITY_GROUP`: DB 보안 그룹
- `TENANT`: 테넌트 | -| sourceId | Query | String | X | 이벤트가 발생한 대상 리소스의 식별자 | -| keyword | Query | String | X | 이벤트 메시지에 포함된 문자열 검색어 | -| ascendingOrder | Query | Enum | X | 이벤트 메시지 정렬 순서
- `ASC`: 오름차순
- `DESC`: 내림차순
- 기본값: `DESC` | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|---------------------------------------| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메시지 목록 | -| events.messages.langCode | Body | String | 언어 코드 | -| events.messages.message | Body | String | 이벤트 메시지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -5018,34 +4892,7 @@ GET /v4.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 28, - "events": [ - { - "eventCategoryType": "INSTANCE", - "eventCode": "INSTC_02_01", - "sourceId": "76f00947-356e-4a20-8922-428368cc45ed", - "sourceName": "db-instance", - "messages": [ - { - "langCode": "EN", - "message": "DB instance started" - }, - { - "langCode": "JA", - "message": "DBインスタンスの起動" - }, - { - "langCode": "KO", - "message": "DB 인스턴스 시작" - }, - { - "langCode": "ZH", - "message": "DB instance started" - } - ], - "eventYmdt": "2023-03-20T16:31:59+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -5054,29 +4901,61 @@ GET /v4.0/events --- -### 구독 가능한 이벤트 코드 목록 보기 +### 파라미터 그룹 삭제하기 ```http -GET /v4.0/event-codes +DELETE /v4.0/parameter-groups/{parameterGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMySQL:Event.List | 이벤트 목록 보기 | +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 파라미터 그룹 상세 보기 + +```http +GET /v4.0/parameter-groups/{parameterGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|-------|-------------| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -5088,12 +4967,18 @@ GET /v4.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "eventCode": "INSTC_05_01", - "eventCategoryType": "INSTANCE" + "applyType": "BOTH" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -5102,140 +4987,60 @@ GET /v4.0/event-codes --- -## 이벤트 구독 - -### 이벤트 구독 목록 조회 +### 파라미터 그룹 수정하기 ```http -GET /v4.0/event-subscriptions +PUT /v4.0/parameter-groups/{parameterGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------------|---------------| -| RDSforMySQL:EventSubscription.List | 이벤트 구독 목록 조회 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | -| eventSubscriptionId | Query | UUID | X | 이벤트 구독의 식별자 | -| eventSubscriptionName | Query | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| userGroupId | Query | UUID | X | 사용자 그룹의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------------|------|----------|--------------------------| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트의 구독 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독을 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | UUID | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "eventSubscriptions": [ - { - "eventSubscriptionId": "12345678-1234-1234-1234-123456789012", - "eventCategoryType": "INSTANCE", - "eventSubscriptionName": "example-event-subscription", - "enabled": true, - "notifyEmail": true, - "notifySms": false, - "eventCodes": [ - "INSTC_05_01" - ], - "sources": [ - { - "sourceId": "87654321-4321-4321-4321-210987654321", - "eventCategoryType": "INSTANCE" - } - ], - "userGroupIds": [ - "11111111-2222-3333-4444-555555555555" - ], - "createdYmdt": "2024-01-01T12:00:00+09:00" - } - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 이벤트 구독 생성하기 +### 파라미터 그룹 복사하기 ```http -POST /v4.0/event-subscriptions +POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------------|--------------| -| RDSforMySQL:EventSubscription.Create | 이벤트 구독 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------------------|------|---------|----|-----------------------------------------| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형 | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름
- 최대 길이: `100` | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형 | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |
예시

```json { - "eventCategoryType": "INSTANCE", - "eventSubscriptionName": "example-event-subscription", - "enabled": true, - "notifyEmail": true, - "notifySms": false, - "eventCodes": [ - "INSTC_05_01" - ], - "sources": [ - { - "sourceId": "87654321-4321-4321-4321-210987654321", - "eventCategoryType": "INSTANCE" - } - ], - "userGroupIds": [ - "11111111-2222-3333-4444-555555555555" - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ``` @@ -5244,9 +5049,9 @@ POST /v4.0/event-subscriptions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------|------|------|-------------| -| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -5258,7 +5063,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "12345678-1234-1234-1234-123456789012" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -5267,56 +5072,30 @@ POST /v4.0/event-subscriptions --- -### 이벤트 구독 수정하기 +### 파라미터 수정하기 ```http -PUT /v4.0/event-subscriptions/{eventSubscriptionId} +PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------------|--------------| -| RDSforMySQL:EventSubscription.Modify | 이벤트 구독 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------------------|------|---------|----|-----------------------------------| -| eventSubscriptionId | URL | UUID | O | 이벤트 구독의 식별자 | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형 | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | X | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형 | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "eventSubscriptionName": "updated-event-subscription", - "enabled": false, - "notifyEmail": false, - "notifySms": true, - "eventCodes": [ - "INSTC_05_01", - "INSTC_06_01" - ], - "sources": [ + "modifiedParameters": [ { - "sourceId": "87654321-4321-4321-4321-210987654321", - "eventCategoryType": "INSTANCE" + "value": "value-example" } - ], - "userGroupIds": [ - "11111111-2222-3333-4444-555555555555", - "22222222-3333-4444-5555-666666666666" ] } ``` @@ -5328,6 +5107,50 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 파라미터 그룹 재설정하기 + +```http +PUT /v4.0/parameter-groups/{parameterGroupId}/reset +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 프로젝트 정보 + +### 프로젝트 멤버 목록 보기 + +```http +GET /v4.0/project/members +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +

예시

@@ -5337,7 +5160,12 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "members": [ + { + "phoneNumber": "phoneNumber-example" + } + ] } ``` @@ -5346,27 +5174,23 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} --- -### 이벤트 구독 삭제하기 +### 리전 목록 보기 ```http -DELETE /v4.0/event-subscriptions/{eventSubscriptionId} +GET /v4.0/project/regions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------------|--------------| -| RDSforMySQL:EventSubscription.Delete | 이벤트 구독 삭제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|-----|------|----|-------------| -| eventSubscriptionId | URL | UUID | O | 이벤트 구독의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

@@ -5377,7 +5201,12 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "regions": [ + { + "isEnabled": false + } + ] } ``` @@ -5385,3 +5214,4 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId}

--- + diff --git a/ko/api-guide-v4.0-ngoic.md b/ko/api-guide-v4.0-ngoic.md index 230463f2..fe0bddcd 100644 --- a/ko/api-guide-v4.0-ngoic.md +++ b/ko/api-guide-v4.0-ngoic.md @@ -1,35 +1,32 @@ ## Database > RDS for MySQL > API 가이드 -| 리전 | 엔드포인트 | -|-----------|-----------------------------------------------| -| 한국(판교) 리전 | https://kr4-rds-mysql-api.ngoic.com | +## RDS for MySQL API 공통 정보 -## 인증 및 권한 +### 인증 및 권한 -API를 사용하려면 [Public API > API 호출 및 인증](/nhncloud/ko/public-api/api-authentication-ngoic/)을 통해 발급 받은 Bearer 유형의 토큰이 필요합니다. +RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. 발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|--------|--------|----|-------------------------------------------------------------| -| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | +| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. -또한 프로젝트 멤버 역할에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER`로 구분하여 권한을 부여할 수 있습니다. - -* `RDS for MySQL ADMIN` 권한은 모든 기능을 사용 가능합니다. -* `RDS for MySQL VIEWER` 권한은 정보를 조회하는 기능만 사용 가능합니다. +* `RDS for MySQL ADMIN` 역할은 API 실행에 필요한 모든 권한이 부여됩니다. +* `RDS for MySQL VIEWER` 역할은 정보를 조회하는 권한만 부여됩니다. * DB 인스턴스를 생성, 수정, 삭제하거나, DB 인스턴스를 대상으로 하는 어떠한 기능도 사용할 수 없습니다. - * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용 가능합니다. + * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용할 수 있습니다. API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같은 오류가 발생합니다. -| resultCode | resultMessage | 설명 | -|------------|---------------|-------------| -| 80401 | Unauthorized | 인증에 실패했습니다. | -| 80403 | Forbidden | 권한이 없습니다. | +| resultCode | resultMessage | 설명 | +|------------|---------------|-----| +| 80401 | Unauthorized | 인증에 실패했습니다. | +| 80403 | Forbidden | 권한이 없습니다. | -## 응답 공통 정보 +### 응답 공통 정보 모든 API 요청에 '200 OK'로 응답합니다. 자세한 응답 결과는 응답 본문의 헤더를 참고합니다. @@ -45,54 +42,67 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 ``` #### 필드 -| 이름 | 형식 | 설명 | -|---------------|---------|-----------------------------------------| -| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | -| resultMessage | String | 결과 메시지 | -| isSuccessful | Boolean | 성공 여부 | - - -## DB 엔진 유형 - -| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | -|--------------|----------|-----------------|--------| -| MYSQL\_V5633 | X | X | NATIVE | -| MYSQL\_V5715 | O | O | NATIVE | -| MYSQL\_V5719 | O | O | NATIVE | -| MYSQL\_V5726 | O | O | NATIVE | -| MYSQL\_V5731 | X | X | NATIVE | -| MYSQL\_V5733 | O | X | NATIVE, SHA256 | -| MYSQL\_V5737 | O | O | NATIVE, SHA256 | -| MYSQL\_V8018 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8023 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8028 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8032 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8033 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8034 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8405 | O | O | CACHING_SHA2 | +| 이름 | 형식 | 설명 | +|-----|-----|-----| +| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | +| resultMessage | String | 결과 메시지 | +| isSuccessful | Boolean | 성공 여부 | + +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(대구) 리전 | https://ngoic-kr4-rds-proxy.cloud.toastoven.net | + +### DB 엔진 유형 + +| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | +|------------|----------|------------------|------------| +| MYSQL_V5633 | X | X | NATIVE | +| MYSQL_V5715 | O | O | NATIVE | +| MYSQL_V5719 | O | O | NATIVE | +| MYSQL_V5726 | O | O | NATIVE | +| MYSQL_V5731 | X | X | NATIVE | +| MYSQL_V5733 | O | X | NATIVE, SHA256 | +| MYSQL_V5737 | O | O | NATIVE, SHA256 | +| MYSQL_V8018 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8023 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8028 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8032 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8033 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8034 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8405 | O | O | CACHING_SHA2 | +| MYSQL_V8406 | O | O | CACHING_SHA2 | +| MYSQL_V8407 | O | O | CACHING_SHA2 | +| MYSQL_V8408 | O | O | CACHING_SHA2 | * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## 프로젝트 정보 +## DB 보안 그룹 -### 리전 목록 보기 +### DB 보안 그룹 진행 상태 -```http -GET /v4.0/project/regions -``` +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | -#### 필요 권한 +### DB 보안 그룹 목록 보기 -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMySQL:Project.Get | 프로젝트 정보 조회 | +```http +GET /v4.0/db-security-groups +``` #### 요청 @@ -100,11 +110,16 @@ GET /v4.0/project/regions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------|------|---------|----------------------------------------------------------------------------| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -116,69 +131,52 @@ GET /v4.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ - { - "regionCode": "KR1", - "isEnabled": true - }, - { - "regionCode": "KR2", - "isEnabled": true - }, + "totalCounts": 1, + "dbSecurityGroups": [ { - "regionCode": "JP1", - "isEnabled": true + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } ``` +

--- -### 프로젝트 멤버 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v4.0/project/members +POST /v4.0/db-security-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMySQL:Project.Get | 프로젝트 정보 조회 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|--------|-----------------| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ { - "memberId": "1b1d3627-507a-49ea-8cb7-c86dfa9caa58", - "memberName": "홍길동", - "emailAddress": "gildong.hong@nhn.com", - "phoneNumber": "+821012345678" + "description": "description-example" } ] } @@ -187,35 +185,11 @@ GET /v4.0/project/members

---- - -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 - -```http -GET /v4.0/db-flavors -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|------------------| -| RDSforMySQL:DbFlavor.List | DB 인스턴스 사양 목록 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -227,14 +201,7 @@ GET /v4.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbFlavorName": "m2.c1m2", - "ram": 2048, - "vcpus": 1 - } - ] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -243,34 +210,62 @@ GET /v4.0/db-flavors --- -## 네트워크 - -### 서브넷 목록 보기 +### DB 보안 그룹 삭제하기 ```http -GET /v4.0/network/subnets +DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 상세 보기 -| 권한명 | 설명 | -|------------------------------------------|-----------| -| RDSforMySQL:Network.List | 서브넷 목록 보기 | +```http +GET /v4.0/db-security-groups/{dbSecurityGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|---------|------------------| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | UUID | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| rules | Body | Array | DB 보안 그룹 규칙 목록 | +| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | 포트 객체 | +| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | 최소 포트 범위 | +| rules.port.maxPort | Body | Number | 최대 포트 범위 | +| rules.cidr | Body | String | CIDR | +| rules.createdYmdt | Body | DateTime | 생성 일시 | +| rules.updatedYmdt | Body | DateTime | 수정 일시 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -282,15 +277,17 @@ GET /v4.0/network/subnets "resultMessage": "SUCCESS", "isSuccessful": true }, - "subnets": [ + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ { - "subnetId": "1b2a9b23-0725-4b92-8c78-35db66b8ad9f", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/24", - "usingGateway": true, - "availableIpCount": 240 + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -299,81 +296,59 @@ GET /v4.0/network/subnets --- -## DB 엔진 - -### DB 엔진 목록 보기 +### DB 보안 그룹 수정하기 ```http -GET /v4.0/db-versions +PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|-------------| -| RDSforMySQL:DbVersion.List | DB 엔진 목록 보기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|---------|-----------------------| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "dbVersions": [ - { - "dbVersion": "MYSQL_V8028", - "dbVersionName": "MySQL 8.0.28", - "restorableFromObs": true - } - ] + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 데이터 스토리지 +이 API는 응답 본문을 반환하지 않습니다. + +--- -### 데이터 스토리지 타입 목록 보기 +### DB 보안 그룹 규칙 삭제하기 ```http -GET /v4.0/storage-types +DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------|-------------------| -| RDSforMySQL:Storage.List | 데이터 스토리지 타입 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|-------|----------------| -| storageTypes | Body | Array | 데이터 스토리지 타입 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -385,10 +360,7 @@ GET /v4.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [ - "General SSD", - "General HDD" - ] + "jobId": "jobId-example" } ``` @@ -397,56 +369,51 @@ GET /v4.0/storage-types --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### DB 보안 그룹 규칙 생성하기 ```http -GET /v4.0/jobs/{jobId} +POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------|-------------| -| RDSforMySQL:Job.Get | 작업 정보 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------|-----|------|----|---------| -| jobId | URL | UUID | O | 작업의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------|------|----------|-----------------------------------| -| jobId | Body | UUID | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태 | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | Enum | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | UUID | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -458,16 +425,7 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "0ddb042c-5af6-43fb-a914-f4dd0540eb7c", - "jobStatus": "RUNNING", - "resourceRelations": [ - { - "resourceType": "DB_INSTANCE", - "resourceId": "56b39dcf-65eb-47ec-9d4f-09f160ba2266" - } - ], - "createdYmdt": "2023-02-22T20:47:12+09:00", - "updatedYmdt": "2023-02-22T20:49:46+09:00" + "jobId": "jobId-example" } ``` @@ -476,33 +434,52 @@ GET /v4.0/jobs/{jobId} --- -## DB 인스턴스 그룹 - -### DB 인스턴스 그룹 목록 보기 +### DB 보안 그룹 규칙 수정하기 ```http -GET /v4.0/db-instance-groups +PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` -#### 필요 권한 +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | -| 권한명 | 설명 | -|--------------------------------------------------|------------------| -| RDSforMySQL:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | +

예시 +

-#### 요청 +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` -이 API는 요청 본문을 요구하지 않습니다. +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------|------|----------|--------------------------------------------------------------------------| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -514,14 +491,7 @@ GET /v4.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ - { - "dbInstanceGroupId": "05de0746-89fd-49c8-94f9-9c5b1df97009", - "replicationType": "STANDALONE", - "createdYmdt": "2023-02-13T17:35:20+09:00", - "updatedYmdt": "2023-02-13T17:35:20+09:00" - } - ] + "jobId": "jobId-example" } ``` @@ -530,38 +500,26 @@ GET /v4.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v4.0/db-instance-groups/{dbInstanceGroupId} +GET /v4.0/db-versions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|------------------| -| RDSforMySQL:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|-----------------| -| dbInstanceGroupId | URL | UUID | O | DB 인스턴스 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |

예시

@@ -573,17 +531,11 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "36617a8e-0df8-4b16-b6ea-6306019e95da", - "replicationType": "STANDALONE", - "dbInstances": [ + "dbVersions": [ { - "dbInstanceId": "6d2db0ef-fe9b-4ed4-97b1-d97fcb4cf1b8", - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE" + "restorableFromObs": false } - ], - "createdYmdt": "2023-03-03T17:38:14+09:00", - "updatedYmdt": "2023-03-03T17:38:14+09:00" + ] } ``` @@ -616,8 +568,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `BACKING_UP` | 백업 중 | | `CANCELING` | 취소 중 | | `CREATING` | 생성 중 | -| `CREATING_SCHEMA` | DB 스키마 생성 중 | -| `CREATING_USER` | 사용자 생성 중 | +| `CREATING_SCHEMA` | DB 스키마 생성 중 | +| `CREATING_USER` | 사용자 생성 중 | | `DELETING` | 삭제 중 | | `DELETING_SCHEMA` | DB 스키마 삭제 중 | | `DELETING_USER` | 사용자 삭제 중 | @@ -636,8 +588,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `STARTING` | 시작 중 | | `STOPPING` | 정지 중 | | `SYNCING_SCHEMA` | DB 스키마 동기화 중 | -| `SYNCING_USER` | 사용자 동기화 중 | -| `UPDATING_USER` | 사용자 수정 중 | +| `SYNCING_USER` | 사용자 동기화 중 | +| `UPDATING_USER` | 사용자 수정 중 | ### DB 인스턴스 목록 보기 @@ -645,32 +597,26 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|---------------| -| RDSforMySQL:DbInstance.List | DB 인스턴스 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | -| dbInstances.dbPort | Body | Number | DB 포트 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태 | -| dbInstances.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstances.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstances | Body | Array | DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | +| dbInstances.dbPort | Body | Number | DB 포트 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbInstances.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstances.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -684,17 +630,7 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "createdYmdt": "2023-01-23T12:03:13+09:00", - "updatedYmdt": "2023-02-02T17:20:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -705,51 +641,123 @@ GET /v4.0/db-instances --- -### DB 인스턴스 상세 보기 +### DB 인스턴스 생성하기 ```http -GET /v4.0/db-instances/{dbInstanceId} +POST /v4.0/db-instances ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| authenticationPlugin | Body | Enum | X | 인증 Plugin
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | TLS Option
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE", + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| dbPort | Body | Number | DB 포트 | -| dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| progressStatus | Body | Enum | DB 인스턴스의 현재 작업 진행 상태 | -| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | -| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | -| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | -| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | -| supportAuthenticationPlugin | Body | Boolean | 인증 플러그인 지원 여부 | -| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | -| needMigration | Body | Boolean | 마이그레이션 필요 여부 | -| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -761,27 +769,7 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "dbFlavorId": "e9ed4ef6-78d7-46fa-ace9-32481e97f3b7", - "parameterGroupId": "b03e8b13-de27-4d04-a488-ff5689589372", - "dbSecurityGroupIds": ["01908c35-d2c9-4852-baf0-17f06ec42c03"], - "notificationGroupIds": ["83a62a33-ddbf-4a04-8653-e54463d5b1ac"], - "useDeletionProtection": false, - "useSlowQueryAnalysis": true, - "supportAuthenticationPlugin": true, - "needToApplyParameterGroup": false, - "needMigration": false, - "supportDbVersionUpgrade": true, - "createdYmdt": "2022-11-23T12:03:13+09:00", - "updatedYmdt": "2022-12-02T17:20:17+09:00" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -790,96 +778,167 @@ GET /v4.0/db-instances/{dbInstanceId} --- -### DB 인스턴스 생성하기 +### 오브젝트 스토리지를 이용한 DB 인스턴스 복원 ```http -POST /v4.0/db-instances +POST /v4.0/db-instances/restore-from-obs ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Create | DB 인스턴스 생성하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|-------|---------|----|---------------------------------------------------------------------| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbUserName | Body | String | O | DB 사용자 계정명 | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | +| restore.username | Body | String | O | NHN Cloud 계정 혹은 IAM 멤버 ID | +| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | +| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | +| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "dbVersion": "ENUM_VALUE", + "useHighAvailability": false, + "pingInterval": 3, "storage": { - "storageType": "General SSD", - "storageSize": 20 + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" }, "backup": { - "backupPeriod": 1, + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": true, "backupSchedules": [ { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR" + "backupWndDuration": "HALF_AN_HOUR" } ] - } + }, + "restore": { + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" + }, + "useDefaultNotification": false, + "useSlowQueryAnalysis": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 인스턴스 삭제하기 + +```http +DELETE /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| deleteAutoBackup | Body | Boolean | X | 자동 백업 삭제 여부
- 기본값: `false` | + +
예시 +

+ +```json +{ + "deleteAutoBackup": false } ``` @@ -888,10 +947,106 @@ POST /v4.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 인스턴스 상세 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| dbPort | Body | Number | DB 포트 | +| dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | +| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | +| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | +| supportAuthenticationPlugin | Body | Boolean | 인증 plugin 지원 여부 | +| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | +| needMigration | Body | Boolean | 마이그레이션 필요 여부 | +| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "dbFlavorId": "dbFlavorId-example", + "parameterGroupId": "parameterGroupId-example", + "dbSecurityGroupIds": [], + "notificationGroupIds": [], + "useDeletionProtection": false, + "useSlowQueryAnalysis": false, + "supportAuthenticationPlugin": false, + "needToApplyParameterGroup": false, + "needMigration": false, + "supportDbVersionUpgrade": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ --- ### DB 인스턴스 수정하기 @@ -900,40 +1055,599 @@ POST /v4.0/db-instances PUT /v4.0/db-instances/{dbInstanceId} ``` -#### 필요 권한 +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbVersion | Body | Enum | X | DB 엔진 버전 코드 | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | +| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
- 기본값: `false` | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbPort": 1, + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "useSlowQueryAnalysis": false, + "useDummy": false, + "dbSecurityGroupIds": [], + "executeBackup": false, + "useOnlineFailover": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 백업 정보 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backupPeriod | Body | Number | 백업 보관 기간(일) | +| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | +| backupRetryCount | Body | Number | 백업 재시도 횟수 | +| replicationRegion | Body | Enum | 백업 복제 리전
- KR4: `한국(대구)` | +| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration
- HALF_AN_HOUR
- ONE_HOUR
- ONE_HOUR_AND_HALF
- TWO_HOURS
- TWO_HOURS_AND_HALF
- THREE_HOURS | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "backupPeriod": 1, + "ftwrlWaitTimeout": 1, + "backupRetryCount": 1, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +--- + +### 백업 정보 수정하기 + +```http +PUT /v4.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +
예시 +

+ +```json +{ + "backupPeriod": 0, + "ftwrlWaitTimeout": 0, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 바이너리 로그 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/binlogs +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| binLogs | Body | Array | BinLog 파일 목록 | +| binLogs.binLogFileName | Body | String | BinLog 파일 이름 | +| binLogs.binLogFileSize | Body | Number | BinLog 파일 크기 (Byte) | +| binLogs.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

-| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "binLogs": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### 바이너리 로그 삭제 + +```http +POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| lastBinLogFileName | Body | String | O | 삭제할 마지막 BinLog 파일 이름 (해당 파일 직전까지 삭제됨) | + +
예시 +

+ +```json +{ + "lastBinLogFileName": "mysql-bin.000010" +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 인증서 파일 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/certificates +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| certificates | Body | Array | 인증서 파일 목록 | +| certificates.fileName | Body | String | 인증서 파일 이름 | +| certificates.certificateType | Body | Enum | 인증서 타입
- CA_FILE
- CERT_FILE
- KEY_FILE | +| certificates.fileSize | Body | Number | 인증서 파일 크기(Byte) | +| certificates.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "certificates": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### 인증서 파일 내보내기 + +```http +POST /v4.0/db-instances/{dbInstanceId}/certificates/upload +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| certificateTypes | Body | Array | O | 업로드할 인증서 타입 목록 | +| tenantId | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 인증서 파일의 경로 | + +
예시 +

+ +```json +{ + "certificateTypes": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 스키마 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSchemas | Body | Array | DB 스키마 목록 | +| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | +| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | +| dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbSchemas": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### DB 스키마 생성하기 + +```http +POST /v4.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaName | Body | String | O | DB 스키마 이름
- 최대 길이: `64`
- 영문 시작, 영문/숫자/_ 허용, 1~64자, MySQL 예약어 불가 | + +
예시 +

+ +```json +{ + "dbSchemaName": "dbSchemaName-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 스키마 삭제하기 + +```http +DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 사용자 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/db-users +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbUsers | Body | Array | DB 사용자 목록 | +| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | +| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | +| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- STABLE
- CREATING
- UPDATING
- SYNCING
- DELETING
- DELETED | +| dbUsers.createdYmdt | Body | DateTime | 생성 일시 | +| dbUsers.updatedYmdt | Body | DateTime | 수정 일시 | +| dbUsers.authenticationPlugin | Body | Enum | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| dbUsers.tlsOption | Body | Enum | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbUsers": [ + { + "tlsOption": "NONE" + } + ] +} +``` + +

+
+ +--- + +### DB 사용자 생성하기 + +```http +POST /v4.0/db-instances/{dbInstanceId}/db-users +``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|---------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbPort | Body | Number | X | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbVersion | Body | Enum | X | DB 엔진 유형 | -| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| host | Body | String | O | DB 사용자 계정의 호스트명
- 최대 길이: `45` | +| authorityType | Body | Enum | O | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |
예시

```json { - "dbInstanceName": "db-instance2", - "description": "description2", - "dbPort": 10001, - "dbSecurityGroupIds": [], - "executeBackup": true + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "host": "host-example", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" } ``` @@ -942,228 +1656,249 @@ PUT /v4.0/db-instances/{dbInstanceId} #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 삭제하기 +### DB 사용자 삭제하기 ```http -DELETE /v4.0/db-instances/{dbInstanceId} +DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Delete | DB 인스턴스 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 재시작하기 +### DB 사용자 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/restart +PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Restart | DB 인스턴스 재시작하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | +| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| authorityType | Body | Enum | X | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | -#### 요청 +
예시 +

+ +```json +{ + "dbPassword": "dbPassword", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- -### DB 인스턴스 강제 재시작하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/force-restart +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|------------------| -| RDSforMySQL:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | +

+
-#### 요청 +--- -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +### DB 인스턴스 삭제 보호 설정 변경 +```http +PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection +``` -#### 응답 +#### 요청 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "useDeletionProtection": false } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 시작하기 +### DB 인스턴스 강제 재시작하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/start +POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Start | DB 인스턴스 시작하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 정지하기 +### 고가용성 정보 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/stop +GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Stop | DB 인스턴스 정지하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| useHighAvailability | Body | Boolean | 고가용성 사용 여부
- 기본값: `false` | +| haStatus | Body | Enum | 고가용성 상태
- CREATED: `생성됨`
- STABLE: `정상`
- PAUSING: `일시 중지 중`
- DISABLE: `정지`
- DISABLE_MASTER_IN_REPLICATION: `마스터 비정상 복제 감지로 인한 고가용성 중단`
- DISABLE_MHA_PROCESS: `고가용성 프로세스 중단`
- DISABLE_REPLICATION_STOP: `복제 중단으로 인한 고가용성 중단`
- DISABLE_REPLICATION_DELAY: `복제 지연으로 인한 고가용성 중단`
- FAILOVER_STARTED: `장애 조치 시작`
- FAILOVER_FAILED: `장애 조치 실패`
- FAILOVER_COMPLETED: `장애 조치 완료`
- DELETED: `삭제됨`
- PAUSED: `일시 중지`
- PAUSED_DUE_TO_TASK: `작업으로 인한 일시 중지`
- MASTER_FAILURE_DETECTION: `마스터 장애 감지` | +| pingInterval | Body | Number | Ping 간격(초) | +| pingType | Body | String | Ping 방식 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "useHighAvailability": false, + "haStatus": "CREATED", + "pingInterval": 1, + "pingType": "pingType-example" +} +``` + +

+
--- -### DB 인스턴스 복제하기 +### 고가용성 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/replicate +PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Replicate | DB 인스턴스 복제하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -#### 요청 +#### 고가용성 사용 시 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록
- 기본값: 원본 DB 인스턴스 값 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: 원본 DB 인스턴스 값 | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄)
- 기본값: 원본 DB 인스턴스 값 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00`
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간
- 기본값: 원본 DB 인스턴스 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` |
예시

```json { - "dbInstanceName": "db-instance-replicate", - "description": "description", - "dbPort": 11000, - "network": { - "availabilityZone": "kr-pub-a" - }, - "storage": { - "stroageSize": 100 - } + "useHighAvailability": false, + "pingInterval": 1 } ``` @@ -1172,147 +1907,138 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 승격하기 +### 고가용성 일시 중지하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/promote +POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Promote | DB 인스턴스 승격하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 재구축하기 +### 고가용성 복구하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/rebuild +POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Rebuild | DB 인스턴스 재구축하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 복원 정보 조회 +### 고가용성 다시 시작하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info +POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | -| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | -| restorableBackups | Body | Array | 복원 가능한 백업 목록 | -| restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | -| restorableBackups.backup.backupName | Body | String | 백업 이름 | -| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | -| restorableBackups.backup.backupType | Body | Enum | 백업 유형
  • `AUTO`: 자동
  • `MANUAL`: 수동
| -| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
  • `BACKING_UP`: 백업 중인 경우
  • `COMPLETED`: 백업이 완료된 경우
  • `DELETING`: 백업이 삭제 중인 경우
  • `DELETED`: 백업이 삭제된 경우
  • `ERROR`: 오류가 발생한 경우
| -| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| restorableBackups.backup.dbVersion | Body | String | DB 엔진 유형 | -| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | -| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | -| restorableBackups.backup.binLogPosition | Body | Number | 바이너리 로그 파일 위치 | -| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | -| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | -| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "oldestRestorableYmdt": "2023-07-09T16:33:33+09:00", - "latestRestorableYmdt": "2023-07-10T15:44:44+09:00", - "restorableBackups": [ - { - "backup": { - "backupId": "145d889a-fe08-474f-8f58-bde576ff96a9", - "backupName": "example-backup-name", - "backupStatus": "COMPLETED", - "dbInstanceId": "dba1be25-9429-4589-9716-7fb6daad7cb9", - "dbInstanceName": "original-db-instance-name", - "dbVersion": "MYSQL_V8028", - "backupType": "MANUAL", - "backupSize": 8299904, - "useBackupLock": true, - "failoverCount": 0, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 367916037, - "createdYmdt": "2023-07-10T15:44:44+09:00", - "updatedYmdt": "2023-07-10T15:46:07+09:00" - }, - "restorableBinLogs": [ - "mysql-bin.000001" - ] - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1321,45 +2047,25 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info --- -### 복원될 마지막 쿼리 조회 +### 고가용성 분리하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query +POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|------|----|-----------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restoreType | Query | Enum | O | 복원 타입 종류

  • `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
  • `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
| - -#### restoreType이 `TIMESTAMP`인 경우 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-------|----------|----|-------------------------------------------| -| restoreYmdt | Query | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +#### 요청 -#### restoreType이 `BINLOG`인 경우 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------|-------|--------|----|--------------------| -| backupId | Query | UUID | O | 복원에 사용할 백업의 식별자 | -| binLogFileName | Query | String | O | 복원에 사용할 바이너리 로그 이름 | -| binLogPosition | Query | Number | O | 복원에 사용할 바이너리 로그 위치 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|----------|--------------------------------------| -| executedYmdt | Body | DateTime | 쿼리 수행 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| lastQuery | Body | String | 마지막 수행 쿼리 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -1371,8 +2077,7 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query "resultMessage": "SUCCESS", "isSuccessful": true }, - "executedYmdt": "2023-03-17T14:02:29+09:00", - "lastQuery": "INSERT INTO `test`.`test`SET @1='0123'" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1381,366 +2086,189 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query --- -### 복원 +### 로그 파일 목록 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/restore +GET /v4.0/db-instances/{dbInstanceId}/log-files ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Restore | DB 인스턴스 복원하기 | - -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restore | Body | Object | O | 복원 정보 객체 | -| restore.restoreType | Body | Enum | O | 복원 타입 종류

  • `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
  • `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
  • `BACKUP`: 기존에 생성한 백업을 이용한 스냅숏 복원 타입
| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
  • 최솟값: `3306`
  • 최댓값: `43306`
| -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
  • 기본값: `false`
| -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
  • 기본값: `3`
  • 최솟값: `1`
  • 최댓값: `600`
| -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
  • 기본값: `false`
| -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
  • 기본값: `false`
| -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
  • 예시: `kr-pub-a`
| -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
  • 최솟값: `20`
  • 최댓값: `2048`
| -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
  • 최솟값: `0`
  • 최댓값: `730`
| -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
  • 기본값: `1800`
  • 최솟값: `0`
  • 최댓값: `21600`
| -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
  • 기본값: `0`
  • 최솟값: `0`
  • 최댓값: `10`
| -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
  • `KR1`: 한국(판교)
  • `KR2`: 한국(평촌)
  • `JP1`: 일본(도쿄)
| -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
  • 기본값: `true`
| -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
  • 예시: `00:00:00`
| -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
  • `HALF_AN_HOUR`: 30분
  • `ONE_HOUR`: 1시간
  • `ONE_HOUR_AND_HALF`: 1시간 30분
  • `TWO_HOURS`: 2시간
  • `TWO_HOURS_AND_HALF`: 2시간 30분
  • `THREE_HOURS`: 3시간
| +이 API는 요청 본문을 요구하지 않습니다. -#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|----------|----|------------------------------------------------------------------------------------------------| -| restore.restoreYmdt | Body | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD)
복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능하다. | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| logFiles | Body | Array | 로그 파일 목록 | +| logFiles.logFileName | Body | String | 로그 파일 이름 | +| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- ERROR
- BINLOG
- GENERAL
- SLOW_QUERY
- AUDIT
- BACKUP | +| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | +| logFiles.createdYmdt | Body | DateTime | 생성 일시 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "TIMESTAMP", - "restoreYmdt": "2023-07-10T15:44:44+09:00" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "logFiles": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) +--- + +### 로그 파일 내보내기 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------------|------|--------|----|--------------------| -| restore.backupId | Body | UUID | O | 복원에 사용할 백업의 식별자 | -| restore.binLog | Body | Object | O | 바이너리 로그 정보 객체 | -| restore.binLog.binLogFileName | Body | String | O | 복원에 사용할 바이너리 로그 이름 | -| restore.binLog.binLogPosition | Body | Number | O | 복원에 사용할 바이너리 로그 위치 | +```http +POST /v4.0/db-instances/{dbInstanceId}/log-files/export +``` -* 바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. +#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| logFileNames | Body | Array | O | 로그 파일 이름 목록 | +| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BINLOG", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36", - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 1234567 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "logFileNames": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

-
- -#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|------|------------------------------|-----------------| -| restore.backupId | Body | UUID | O(restoreType이 `BACKUP`인 경우) | 복원에 사용할 백업의 식별자 | +
+#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BACKUP", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - - --- -### 오브젝트 스토리지로부터 복원 +### 로그 파일 내용 보기 ```http -POST /v4.0/db-instances/restore-from-obs +GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------------|-------------------------| -| RDSforMySQL:DbInstance.RestoreFromObs | DB 인스턴스 오브젝트 스토리지로부터 복원 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|----------------------------------------------------------------------------------------| -| restore | Body | Object | O | 복원 정보 객체 | -| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | -| restore.username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | -| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | -| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
  • 최솟값: `3306`
  • 최댓값: `43306`
| -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
  • 기본값: `false`
| -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
  • 기본값: `3`
  • 최솟값: `1`
  • 최댓값: `600`
| -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
  • 기본값: `false`
| -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
  • 기본값: `false`
| -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
  • 예시: `kr-pub-a`
| -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
  • 최솟값: `20`
  • 최댓값: `2048`
| -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
  • 최솟값: `0`
  • 최댓값: `730`
| -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
  • 기본값: `1800`
  • 최솟값: `0`
  • 최댓값: `21600`
| -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
  • 기본값: `0`
  • 최솟값: `0`
  • 최댓값: `10`
| -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
  • `KR1`: 한국(판교)
  • `KR2`: 한국(평촌)
  • `JP1`: 일본(도쿄)
| -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
  • 기본값: `true`
| -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
  • 예시: `00:00:00`
| -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
  • `HALF_AN_HOUR`: 30분
  • `ONE_HOUR`: 1시간
  • `ONE_HOUR_AND_HALF`: 1시간 30분
  • `TWO_HOURS`: 2시간
  • `TWO_HOURS_AND_HALF`: 2시간 30분
  • `THREE_HOURS`: 3시간
| +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| logFileName | URL | UUID | O | 로그 파일 이름 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| content | Body | String | 로그 파일 내용 (최대 65533 bytes) |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbVersion": "MYSQL_V8028", - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "tenantId":"tenant-id", - "username":"username", - "password":"password", - "targetContainer":"targetContainer", - "objectPath":"objectPath" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "content": "content-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - - --- - -### DB 인스턴스 삭제 보호 설정 변경하기 +### DB 인스턴스 유지 관리 목록 보기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection +GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| type | Query | String | X | | +| statuses | Query | String | X | | +| category | Query | String | X | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 유지 관리 목록 갯수 | +| maintenances | Body | Array | 유지 관리 목록 | +| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| maintenances.description | Body | String | 유지 관리 설명 | +| maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| maintenances.payload | Body | Object | 유지 관리 타입에 따른 Payload | +| maintenances.required | Body | Boolean | 유지 관리 필수 여부 | +| maintenances.deadlineYmdt | Body | DateTime | 유지 관리 강제 적용 일시 | +| maintenances.status | Body | Enum | 유지 관리 상태
- PENDING: `대기`
- READY: `준비`
- RUNNING: `실행 중`
- COMPLETED: `완료`
- FAILED: `실패`
- EXCLUDED: `제외`
- DELETED: `삭제`
- UNKNOWN | +| maintenances.executionType | Body | Enum | 유지 관리 실행 타입
- SCHEDULED: `예약 실행 (유지 관리 기간 자동 실행)`
- MANUAL: `수동 실행 (즉시 실행)`
- FORCED: `강제 실행 (데드라인 초과 자동 실행)` | +| maintenances.addedYmdt | Body | DateTime | 유지 관리 스케줄 등록 일시 | +| maintenances.executionStartedYmdt | Body | DateTime | 유지 관리 시작 일시 | +| maintenances.executionCompletedYmdt | Body | DateTime | 유지 관리 종료 일시 |
예시

@@ -1751,7 +2279,13 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "totalCounts": 1, + "maintenances": [ + { + "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -1760,178 +2294,250 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection --- -### 고가용성 수정하기 +### DB 인스턴스 유지 관리 즉시 실행하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/high-availability +POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Modify | 고가용성 수정하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload | -#### 요청 +

예시 +

+ +```json +{ + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|---------|----|------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 고가용성 다시 시작하기 +### DB 인스턴스 유지 관리 예약하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume +POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------------|--------------| -| RDSforMySQL:HighAvailability.Resume | 고가용성 다시 시작하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 고가용성 일시 중지하기 +### DB 인스턴스 유지 관리 삭제하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause +DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|--------------| -| RDSforMySQL:HighAvailability.Pause | 고가용성 일시 중지하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| maintenanceId | URL | UUID | O | 유지 관리 아이디 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 고가용성 복구하기 +### 네트워크 정보 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair +GET /v4.0/db-instances/{dbInstanceId}/network-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Repair | 고가용성 복구하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | +| subnet | Body | Object | 서브넷 객체 | +| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnet.subnetCidr | Body | String | 서브넷의 CIDR | +| endPoints | Body | Array | 접속 정보 목록 | +| endPoints.domain | Body | String | 도메인 | +| endPoints.ipAddress | Body | String | IP 주소 | +| endPoints.endPointType | Body | String | 접속 정보 타입 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "availabilityZone": "availabilityZone-example", + "subnet": { + "subnetId": "subnetId-example", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example" + }, + "endPoints": [ + { + "endPointType": "endPointType-example" + } + ] +} +``` + +

+
--- -### 고가용성 분리하기 +### 네트워크 정보 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/split +PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Split | 고가용성 분리하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "usePublicAccess": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 데이터 스토리지 정보 보기 +### DB 인스턴스 승격하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/storage-info +POST /v4.0/db-instances/{dbInstanceId}/promote ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|---------|--------------------------------------------------------------------------------------| -| storageType | Body | Enum | 데이터 스토리지 타입 | -| storageSize | Body | Number | 데이터 스토리지 크기(GB) | -| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- `DETACHED`: 부착되지 않음
- `ATTACHED`: 부착됨
- `DELETED`: 삭제됨 | -| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | -| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | -| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -1943,89 +2549,150 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "General SSD", - "storageSize": 20, - "storageStatus": "ATTACHED", - "storageAutoscale": { - "useStorageAutoscale": true, - "threshold": 80, - "maxStorageSize": 100, - "cooldownTime": 10 - } + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### 데이터 스토리지 정보 수정하기 +### DB 인스턴스 재구축하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/storage-info +POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: 현재값
- 최댓값: `2048` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 백업 정보 보기 +### DB 인스턴스 복제하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/backup-info +POST /v4.0/db-instances/{dbInstanceId}/replicate ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부 | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | X | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | X | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|---------|----------------| -| backupPeriod | Body | Number | 백업 보관 기간(일) | -| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | -| backupRetryCount | Body | Number | 백업 재시도 횟수 | -| replicationRegion | Body | Enum | 백업 복제 리전 | -| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | -| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2037,112 +2704,108 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "backupPeriod": 1, - "ftwrlWaitTimeout": 1800, - "backupRetryCount": 0, - "replicationRegion": null, - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### 백업 정보 수정하기 +### DB 인스턴스 재시작하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/backup-info +POST /v4.0/db-instances/{dbInstanceId}/restart ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | -#### 요청 +
예시 +

+ +```json +{ + "useOnlineFailover": false, + "executeBackup": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------------------------|------|---------|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "backupPeriod": 5, - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndBgnTime": "01:00:00", - "backupWndDuration": "TWO_HOURS" - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 네트워크 정보 보기 +### DB 인스턴스 복원 정보 조회 ```http -GET /v4.0/db-instances/{dbInstanceId}/network-info +GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------------------------------------------------------------------------------------------------------------------------------| -| availabilityZone | Body | Enum | DB 인스턴스를 생성할 가용성 영역 | -| subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | UUID | 서브넷의 식별자 | -| subnet.subnetName | Body | UUID | 서브넷을 식별할 수 있는 이름 | -| subnet.subnetCidr | Body | UUID | 서브넷의 CIDR | -| endPoints | Body | Array | 접속 정보 목록 | -| endPoints.domain | Body | String | 도메인 | -| endPoints.ipAddress | Body | String | IP 주소 | -| endPoints.endPointType | Body | Enum | 접속 정보 타입
-`EXTERNAL`: 외부 접속 도메인
-`INTERNAL`: 내부 접속 도메인
-`PUBLIC`: (Deprecated) 외부 접속 도메인
-`PRIVATE`: (Deprecated) 내부 접속 도메인 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | +| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | +| restorableBackups | Body | Array | 복원 가능한 백업 목록 | +| restorableBackups.backup | Body | Object | 백업 정보 객체 | +| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupName | Body | String | 백업 이름 | +| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | +| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | +| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | +| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | +| restorableBackups.backup.binLogPosition | Body | Object | 바이너리 로그 파일 위치 | +| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | +| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | +| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 |
예시

@@ -2154,17 +2817,11 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "kr-pub-a", - "subnet": { - "subnetId": "bd453789-34ae-416c-9f78-05b9e43a46be", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/16" - }, - "endPoints": [ + "oldestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "restorableBackups": [ { - "domain": "ea548a78-d85f-43b4-8ddf-c88d999b9905.internal.kr1.mysql.rds.nhncloudservice.com", - "ipAddress": "192.168.0.2", - "endPointType": "INTERNAL" + "restorableBinLogs": [] } ] } @@ -2175,67 +2832,26 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info --- -### 네트워크 정보 수정하기 - -```http -PUT /v4.0/db-instances/{dbInstanceId}/network-info -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 목록 보기 +### 복원될 마지막 쿼리 조회 ```http -GET /v4.0/db-instances/{dbInstanceId}/db-users +GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|---------------------| -| RDSforMySQL:DbInstanceUser.List | DB 인스턴스 내 사용자 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|-----------------------------------------------------------------------------------------------------------------------------| -| dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | -| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | -| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | -| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `UPDATING`: 수정 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbUsers.authenticationPlugin | Body | Enum | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| dbUsers.tlsOption | Body | Enum | TLS Option
- NONE
- SSL
- X509 | -| dbUsers.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbUsers.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| executedYmdt | Body | DateTime | 쿼리 수행 일시 | +| lastQuery | Body | String | 마지막 수행 쿼리 |

예시

@@ -2247,19 +2863,8 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbUsers": [ - { - "dbUserId": "4b3d530b-fd02-4d59-a620-83d019a67bbb", - "dbUserName": "db-user", - "host": "%", - "authorityType": "DDL", - "dbUserStatus": "STABLE", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE", - "createdYmdt": "2023-03-17T14:02:29+09:00", - "updatedYmdt": "2023-03-17T14:02:31+09:00" - } - ] + "executedYmdt": "2023-12-31T15:00:00+09:00", + "lastQuery": "lastQuery-example" } ``` @@ -2268,45 +2873,138 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users --- -### DB 사용자 생성하기 +### DB 인스턴스 복원 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-users +POST /v4.0/db-instances/{dbInstanceId}/restore ``` +#### 공통 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미입력 시 원본 인스턴스의 사양이 적용됩니다. | +| dbPort | Body | Number | X | DB 포트 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | X | 스토리지 정보 객체. 미입력 시 원본 인스턴스의 스토리지 설정이 적용됩니다. | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미입력 시 원본 인스턴스의 스토리지 타입이 적용됩니다. | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미입력 시 원본 인스턴스의 스토리지 크기가 적용됩니다.
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | X | 네트워크 정보 객체. 미입력 시 원본 인스턴스의 네트워크 설정이 적용됩니다. | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미입력 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미입력 시 랜덤 선택 | +| backup | Body | Object | X | 백업 정보 객체. 미입력 시 원본 인스턴스의 백업 설정이 적용됩니다. | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미입력 시 원본 인스턴스의 백업 보관 기간이 적용됩니다.
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미입력 시 원본 인스턴스의 백업 스케쥴이 적용됩니다. | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.restoreType | Body | Enum | O | 복원 타입
- TIMESTAMP: `복원 가능한 시간 이내의 시간을 이용한 시점 복원`
- BINLOG: `복원 가능한 바이너리 로그 위치를 이용한 시점 복원`
- BACKUP: `기존에 생성한 백업을 이용한 스냅숏 복원` | +| restore.binLog.binLogFileName | Body | String | X | 복원에 사용할 바이너리 로그 이름 | +| restore.binLog.binLogPosition | Body | Object | X | 복원에 사용할 바이너리 로그 위치 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미입력 시 원본 인스턴스의 파라미터 그룹이 적용됩니다. | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록. 미입력 시 원본 인스턴스의 보안 그룹이 적용됩니다. | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -#### 필요 권한 +#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Create | DB 인스턴스 내 사용자 생성하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.restoreYmdt | Body | DateTime | X | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -#### 요청 +복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|-------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserName | Body | String | O | DB 사용자 계정 이름
- 최소 길이: `1`
- 최대 길이: `32` | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| host | Body | String | O | DB 사용자 계정의 호스트명
- 예시: `1.1.1.%` | -| authorityType | Body | Enum | O | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | +#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | +| restore.binLog | Body | Object | X | 복원에 사용할 바이너리 로그 정보 객체 | + +바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. + +#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 설정할 수 있습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 |

예시

```json { - "dbUserName": "db-user", - "dbPassword": "password", - "host": "1.1.1.%", - "authorityType": "CRUD", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "useHighAvailability": false, + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "restoreType": "TIMESTAMP", + "binLog": { + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + } + } + }, + "useDefaultNotification": false, + "useSlowQueryAnalysis": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false } ``` @@ -2315,117 +3013,133 @@ POST /v4.0/db-instances/{dbInstanceId}/db-users #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 사용자 수정하기 +### DB 인스턴스 시작하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +POST /v4.0/db-instances/{dbInstanceId}/start ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Modify | DB 인스턴스 내 사용자 수정하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|-------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | -| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| authorityType | Body | Enum | X | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | +#### 응답 -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 수정할 수 있습니다. -> `authenticationPlugin`의 값은 `dbPassword`와 동시에 수정을 해야 합니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "authorityType": "DDL" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 삭제하기 +### DB 인스턴스 정지하기 ```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +POST /v4.0/db-instances/{dbInstanceId}/stop ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Delete | DB 인스턴스 내 사용자 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 스키마 목록 보기 +### 스토리지 정보 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/db-schemas +GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|---------------------| -| RDSforMySQL:DbInstanceSchema.List | DB 인스턴스 내 스키마 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|------------------------------------------------------------------------------------------------------| -| dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | -| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | -| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbSchemas.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageType | Body | String | 데이터 스토리지 타입 | +| storageSize | Body | Number | 데이터 스토리지 크기(GB) | +| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- DELETED: `삭제됨`
- PENDING_DELETION: `삭제 유예됨`
- DELETION_RESERVED: `삭제 예약됨 (스냅샷 정리 대기)`
- DETACHED: `해제됨`
- ATTACHED: `할당됨` | +| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | +| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | +| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | +| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) |
예시

@@ -2437,14 +3151,15 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSchemas": [ - { - "dbSchemaId": "7c9a94b8-86c1-435d-8af2-82a5e9d53fd4", - "dbSchemaName": "schema", - "dbSchemaStatus": "STABLE", - "createdYmdt": "2023-03-20T13:37:45+09:00" - } - ] + "storageType": "storageType-example", + "storageSize": 1, + "storageStatus": "DELETED", + "storageAutoscale": { + "useStorageAutoscale": false, + "threshold": 1, + "maxStorageSize": 1, + "cooldownTime": 1 + } } ``` @@ -2453,93 +3168,90 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas --- -### DB 스키마 생성하기 +### 스토리지 정보 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-schemas +PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceSchema.Create | DB 인스턴스 내 스키마 생성하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaName | Body | String | O | DB 스키마 이름 | +#### 공통 요청 -#### 응답 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최댓값: `2048` | +| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +#### 스토리지 자동 확장 사용 시 ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -### DB 스키마 삭제하기 +

예시 +

-```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +```json +{ + "storageSize": 1, + "storageAutoscale": { + "useStorageAutoscale": false + } +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceSchema.Delete | DB 인스턴스 내 스키마 삭제하기 | +

+
-#### 요청 +#### 응답 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | +
예시 +

-#### 응답 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 로그 파일 목록 보기 +## DB 인스턴스 그룹 + +### DB 인스턴스 그룹 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/log-files +GET /v4.0/db-instance-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|-----------------------| -| RDSforMySQL:DbInstanceLog.List | DB 인스턴스 내 로그 파일 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|-------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileTypes | Query | Array | X | 로그 파일 타입 종류 목록
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| logFiles | Body | Array | 로그 파일 목록 | -| logFiles.logFileName | Body | String | 로그 파일 이름 | -| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | -| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | -| logFiles.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2551,12 +3263,9 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files "resultMessage": "SUCCESS", "isSuccessful": true }, - "logFiles": [ + "dbInstanceGroups": [ { - "logFileName": "xtra_full.log-20230317", - "logFileType": "BACKUP", - "logFileSize": 4096, - "createdYmdt": "2023-03-17T14:02:29+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2567,107 +3276,81 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files --- -### 로그 파일 내보내기 +### DB 인스턴스 그룹 상세 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/log-files/export +GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. -| 권한명 | 설명 | -|--------------------------------------------------|----------------------| -| RDSforMySQL:DbInstanceLog.Export | DB 인스턴스 내 로그 파일 내보내기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|--------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileNames | Body | Array | O | 로그 파일 이름 목록
- 최소 크기: `1` | -| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "logFileNames": ["xtra_full.log-20230317"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "logs/backup" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +## DB 인스턴스 사양 -### 백업 목록 조회 +### DB 인스턴스 사양 목록 보기 ```http -GET /v4.0/backups +GET /v4.0/db-flavors ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Backup.List | 백업 목록 조회 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|--------|----|----------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| backupType | Query | Enum | X | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동
- 기본값: 전체 | -| dbInstanceId | Query | UUID | X | 원본 DB 인스턴스의 식별자 | -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|-----------------------------------| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | UUID | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태 | -| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형 | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -2679,308 +3362,183 @@ GET /v4.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "backups": [ + "dbFlavors": [ { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupSize": 4996786, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" + "vcpus": 1 } ] } ```

-
- ---- - -### 백업 생성하기 - -```http -POST /v4.0/backups -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Create | 백업 생성하기 | - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|--------|----|------------------------------------------------------------| -| backupName | Body | String | O | 백업을 식별할 수 있는 이름 | -| backupMethodType | Body | Enum | O | 백업 방식 타입 종류
- `FULL`: 전체 백업
- `INCREMENTAL`: 증분 백업 | - -#### 전체 백업(backupMethodType이 `FULL`인 경우) +
-| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|--------------| -| dbInstanceId | Body | UUID | O | DB 인스턴스의 식별자 | +--- +## 가용성 영역 -
예시 -

+### 가용성 영역 목록 보기 -```json -{ - "backupName": "example-backup-name", - "backupMethodType": "FULL", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd" -} +```http +GET /v4.0/availability-zones ``` -

-
+#### 요청 -#### 증분 백업(backupMethodType이 `INCREMENTAL`인 경우) +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|------------| -| baseBackupId | Body | UUID | O | 기준 백업의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZones | Body | Array | 가용성 영역 목록 | +| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | +| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | +| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 |
예시

```json { - "backupName": "example-backup-name", - "backupMethodType": "INCREMENTAL", - "baseBackupId": "3ae7914f-9b42-4729-b125-87417b72cf36" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "availabilityZones": [ + { + "zoneState": { + "available": false + } + } + ] } ```

- -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 백업 내보내기 +## 네트워크 + +### 서브넷 목록 보기 ```http -POST /v4.0/backups/{backupId}/export +GET /v4.0/network/subnets ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Export | 백업 내보내기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |
예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - -> [주의] -> 수동 백업의 경우 백업이 수행된 DB 인스턴스가 존재하지 않으면, 백업을 오브젝트 스토리지로 내보낼 수 없습니다. - --- -### 백업 복원하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v4.0/backups/{backupId}/restore +GET /v4.0/storage-types ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------| -| RDSforMySQL:Backup.Restore | 백업 복원하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Integer | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |
예시

```json - { - "dbInstanceName": "db-instance-restore", - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbPort": 10000, - "parameterGroupId": "132d383c-38e3-468a-a826-5e9a8fff15d0", - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "storageTypes": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 백업 삭제하기 +## 모니터링 + +### 통계 정보 조회 ```http -DELETE /v4.0/backups/{backupId} +GET /v4.0/metric-statistics ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Delete | 백업 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | - -### DB 보안 그룹 목록 보기 +### Metric 목록 보기 ```http -GET /v4.0/db-security-groups +GET /v4.0/metrics ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|----------------| -| RDSforMySQL:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-----------------------------------| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -2992,14 +3550,9 @@ GET /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "metrics": [ { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2022-02-19T19:18:13+09:00" + "unit": "unit-example" } ] } @@ -3010,48 +3563,44 @@ GET /v4.0/db-security-groups --- -### DB 보안 그룹 상세 보기 +## 백업 -```http -GET /v4.0/db-security-groups/{dbSecurityGroupId} -``` +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | -#### 필요 권한 +### 백업 목록 조회 -| 권한명 | 설명 | -|-------------------------------------------------|----------------| -| RDSforMySQL:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | +```http +GET /v4.0/backups +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|----------|--------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다.
- `PORT`: 지정된 포트값으로 설정됩니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | 허용할 트래픽의 원격 소스 | -| rules.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| rules.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3063,30 +3612,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "rules": [ - { - "ruleId": "17c88ef6-95f1-4678-84f9-fee1b22e250d", - "description": "description", - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } - ], - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } + "totalCounts": 1, + "backups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -3095,56 +3626,30 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 생성하기 +### 백업 생성하기 ```http -POST /v4.0/db-security-groups +POST /v4.0/backups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | +| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | +| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "rules": [ - { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0" - } - ] + "backupName": "backupName", + "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "backupMethodType": "FULL" } ``` @@ -3153,48 +3658,48 @@ POST /v4.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|------|---------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | - ---- - -### DB 보안 그룹 수정하기 - -```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|-----------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

+--- + +### 백업 삭제하기 + +```http +DELETE /v4.0/backups/{backupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3205,39 +3710,52 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### DB 보안 그룹 삭제하기 +### 백업 단건 조회 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/backups/{backupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backup | Body | Object | 백업 상세 정보 | +| backup.backupId | Body | String | 백업의 식별자 | +| backup.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| backup.dbVersion | Body | Enum | DB 엔진 버전 | +| backup.utilVersion | Body | String | 유틸리티 버전 | +| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | +| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | +| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | +| backup.backupSize | Body | Number | 백업의 크기(Byte) | +| backup.isReplicable | Body | Boolean | 복제 가능 여부 | +| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | +| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | +| backup.createdYmdt | Body | DateTime | 생성 일시 | +| backup.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3248,6 +3766,26 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true + }, + "backup": { + "backupId": "backupId-example", + "regionCode": "KR4", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupMethodType": "FULL", + "backupFileType": "XBSTREAM", + "backupSize": 1, + "isReplicable": false, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } } ``` @@ -3257,48 +3795,33 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 규칙 생성하기 +### 백업 내보내기 ```http -POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v4.0/backups/{backupId}/export ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT", - "minPort": 10000, - "maxPort": 10000 - }, - "cidr": "0.0.0.0/0" + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -3307,130 +3830,179 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### DB 보안 그룹 규칙 수정하기 - -```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleId | URL | UUID | O | DB 보안 그룹 규칙의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. -

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "DB_PORT" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "0.0.0.0/0" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 보안 그룹 규칙 삭제하기 +### 백업 복원하기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v4.0/backups/{backupId}/restore +``` + +#### 공통 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | +| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 삭제하기 | +

+
-#### 요청 +#### 응답 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|-------|----|---------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleIds | Query | Array | O | DB 보안 그룹 규칙의 식별자 목록 | +
예시 +

-#### 응답 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -## 파라미터 그룹 +## 사용자 그룹 -### 파라미터 그룹 목록 보기 +### 사용자 그룹 목록 보기 ```http -GET /v4.0/parameter-groups +GET /v4.0/user-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.List | 파라미터 그룹 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------|-------|------|----|----------| -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-------------------------------------------------------------------| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3442,15 +4014,10 @@ GET /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroups": [ + "totalCounts": 1, + "userGroups": [ { - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "createdYmdt": "2023-02-31T15:28:17+09:00", - "updatedYmdt": "2023-02-31T15:28:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -3459,50 +4026,41 @@ GET /v4.0/parameter-groups

- --- -### 파라미터 그룹 상세 보기 +### 사용자 그룹 생성하기 ```http -GET /v4.0/parameter-groups/{parameterGroupId} +POST /v4.0/user-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.Get | 파라미터 그룹 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|--------------------------------------------------------------------------------------------------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | UUID | 파라미터 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- `CLIENT`: client
- `MYSQL`: mysql
- `MYSQLD`: mysqld | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- `VARIABLE`: 언제든 수정 가능
- `CONSTANT`: 수정 불가능
- `INIT_VARIABLE`: DB 인스턴스 생성 시에만 수정 가능 | -| parameters.applyType | Body | Enum | 적용 타입
- `SESSION`: 세션 적용
- `FILE`: 설정 파일 적용(재시작 필요)
- `BOTH`: 전체(재시작 필요) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 |
예시

@@ -3514,143 +4072,112 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "parameters": [ - { - "parameterId": "fa040b5e-f29f-46de-8f0d-bba4cb82887a", - "parameterFileGroup": "client", - "parameterName": "socket", - "fileParameterName": "socket", - "value": "/home/tcrds/db/mysql/tmp/mysql.sock", - "defaultValue": "/home/tcrds/db/mysql/tmp/mysql.sock", - "allowedValue": "", - "updateType": "CONSTANT", - "applyType": "BOTH" - } - ], - "createdYmdt": "2023-03-13T11:02:28+09:00", - "updatedYmdt": "2023-03-13T11:02:28+09:00" + "userGroupId": "userGroupId-example" } ```

- --- -### 파라미터 그룹 생성하기 +### 사용자 그룹 삭제하기 ```http -POST /v4.0/parameter-groups +DELETE /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Create | 파라미터 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | - -
예시 -

- -```json -{ - "parameterGroupName": "parameter-group", - "dbVersion": "MYSQL_V8028" -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 복사하기 +### 사용자 그룹 상세 보기 ```http -POST /v4.0/parameter-groups/{parameterGroupId}/copy +GET /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. -| 권한명 | 설명 | -|-------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Copy | 파라미터 그룹 복사하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

```json { - "parameterGroupName": "parameter-group-copy", - "description": "copy" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ + { + "memberId": "memberId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | - --- -### 파라미터 그룹 수정하기 +### 사용자 그룹 수정하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId} +PUT /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |
예시

```json { - "parameterGroupName": "parameter-group" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ``` @@ -3661,6 +4188,33 @@ PUT /v4.0/parameter-groups/{parameterGroupId} 이 API는 응답 본문을 반환하지 않습니다. +--- + +## 알림 그룹 + +### 알림 그룹 목록 보기 + +```http +GET /v4.0/notification-groups +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +

예시

@@ -3670,7 +4224,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -3679,38 +4238,34 @@ PUT /v4.0/parameter-groups/{parameterGroupId} --- -### 파라미터 수정하기 +### 알림 그룹 생성하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/parameters +POST /v4.0/notification-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------|------|--------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ - { - "parameterId": "3abac558-7274-44e1-9f4a-f100f53f67ba", - "value": "0" - } - ] + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], + "userGroupIds": [] } ``` @@ -3719,7 +4274,9 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3730,7 +4287,8 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3739,27 +4297,57 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters --- -### 파라미터 그룹 재설정하기 +### 알림 그룹 삭제하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/reset +DELETE /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. -| 권한명 | 설명 | -|--------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | +--- + +### 알림 그룹 상세 보기 + +```http +GET /v4.0/notification-groups/{notificationGroupId} +``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3770,7 +4358,24 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ + { + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3779,61 +4384,67 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset --- -### 파라미터 그룹 삭제하기 +### 알림 그룹 수정하기 ```http -DELETE /v4.0/parameter-groups/{parameterGroupId} +PUT /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 사용자 그룹 +## 이벤트 -### 사용자 그룹 목록 보기 +### 이벤트 카테고리 -```http -GET /v4.0/user-groups -``` +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. + +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -#### 필요 권한 +### 구독 가능한 이벤트 코드 목록 보기 -| 권한명 | 설명 | -|--------------------------------------------|--------------| -| RDSforMySQL:UserGroup.List | 사용자 그룹 목록 보기 | +```http +GET /v4.0/event-codes +``` #### 요청 @@ -3841,13 +4452,11 @@ GET /v4.0/user-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|-----------------------------------| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |
예시

@@ -3859,12 +4468,9 @@ GET /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "eventCodes": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "eventCategoryType": "ALL" } ] } @@ -3875,37 +4481,30 @@ GET /v4.0/user-groups --- -### 사용자 그룹 상세 보기 +### 이벤트 목록 조회 ```http -GET /v4.0/user-groups/{userGroupId} +GET /v4.0/events ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|--------------| -| RDSforMySQL:UserGroup.Get | 사용자 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|----------|-----------------------------------------------------------------------------------------------------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
`ENTIRE`: 프로젝트 멤버 전체를 포함하는 사용자 그룹
`INDIVIDUAL_MEMBER`: 특정 프로젝트 멤버를 포함하는 사용자 그룹 | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

@@ -3917,16 +4516,12 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "userGroupTypeCode": "INDIVIDUAL_MEMBER", - "members": [ + "totalCounts": 1, + "events": [ { - "memberId": "1321e759-2ef3-4b85-9921-b13e918b24b5" + "eventYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + ] } ``` @@ -3935,87 +4530,99 @@ GET /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 생성하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v4.0/user-groups +GET /v4.0/event-subscriptions ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Create | 사용자 그룹 생성하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|-----------------------------------------------------------| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록
`selectAll`이 true인 경우 해당 필드 값은 무시됨 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |

예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } ] } ``` -```json -{ - "userGroupName": "dev-team", - "selectAll": true -} -``` -

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------------|------|------|-------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | - --- -### 사용자 그룹 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v4.0/user-groups/{userGroupId} +POST /v4.0/event-subscriptions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Modify | 사용자 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|----------------------------------------------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | -| userGroupName | Body | String | X | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5", - "f9064b09-2b15-442e-a4b0-3a5a2754555e" - ] + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ``` @@ -4024,7 +4631,9 @@ PUT /v4.0/user-groups/{userGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -4035,7 +4644,8 @@ PUT /v4.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -4044,76 +4654,121 @@ PUT /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 삭제하기 +### 이벤트 구독 삭제하기 ```http -DELETE /v4.0/user-groups/{userGroupId} +DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Delete | 사용자 그룹 삭제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v4.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 알림 그룹 +## 작업 정보 -### 알림 그룹 목록 보기 +### 작업 상태 -```http -GET /v4.0/notification-groups -``` +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | -#### 필요 권한 +### 작업 정보 상세 보기 -| 권한명 | 설명 | -|----------------------------------------------------|-------------| -| RDSforMySQL:NotificationGroup.List | 알림 그룹 목록 보기 | +```http +GET /v4.0/jobs/{jobId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------------|------|----------|-----------------------------------| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4125,17 +4780,15 @@ GET /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ { - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "resourceId": "resourceId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4144,43 +4797,32 @@ GET /v4.0/notification-groups --- -### 알림 그룹 상세 보기 +## 파라미터 그룹 + +### 파라미터 그룹 목록 보기 ```http -GET /v4.0/notification-groups/{notificationGroupId} +GET /v4.0/parameter-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|-------------| -| RDSforMySQL:NotificationGroup.Get | 알림 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------------|------|----------|-----------------------------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 파라미터 그룹 수 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4192,25 +4834,12 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "dbInstances": [ - { - "dbInstanceId": "ed5cb985-526f-4c54-9ae0-40288593de65", - "dbInstanceName": "database" - } - ], - "userGroups": [ + "totalCounts": 1, + "parameterGroups": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + ] } ``` @@ -4219,43 +4848,28 @@ GET /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v4.0/notification-groups +POST /v4.0/parameter-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Create | 알림 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------------| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "notificationGroupName": "dev-team-noti", - "notifyEmail": false, - "isEnable": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65" - ], - "userGroupIds": [ - "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0" - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -4264,55 +4878,84 @@ POST /v4.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|------|------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "parameterGroupId": "parameterGroupId-example" +} +``` + +

+
--- -### 알림 그룹 수정하기 +### 파라미터 그룹 삭제하기 ```http -PUT /v4.0/notification-groups/{notificationGroupId} +DELETE /v4.0/parameter-groups/{parameterGroupId} ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Modify | 알림 그룹 수정하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부 | -| notifySms | Body | Boolean | X | SMS 알림 여부 | -| isEnabled | Body | Boolean | X | 활성화 여부 | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +#### 응답 -
예시 -

+이 API는 응답 본문을 반환하지 않습니다. -```json -{ - "notifyEmail": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65", - "d51b7da0-682f-47ff-b588-b739f6adc740" - ] -} +--- + +### 파라미터 그룹 상세 보기 + +```http +GET /v4.0/parameter-groups/{parameterGroupId} ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4323,7 +4966,19 @@ PUT /v4.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ + { + "applyType": "BOTH" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4332,73 +4987,71 @@ PUT /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 수정하기 ```http -DELETE /v4.0/notification-groups/{notificationGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Delete | 알림 그룹 삭제하기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 모니터링 +이 API는 응답 본문을 반환하지 않습니다. -### Metric 목록 보기 +--- + +### 파라미터 그룹 복사하기 ```http -GET /v4.0/metrics +POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Metric.List | 통계 정보 조회 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|--------|-----------| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | Enum | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -4410,12 +5063,7 @@ GET /v4.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "measureName": "CPU_USAGE", - "unit": "%" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4424,62 +5072,29 @@ GET /v4.0/metrics --- -### 통계 정보 조회 +### 파라미터 수정하기 ```http -GET /v4.0/metric-statistics +PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Metric.List | 통계 정보 조회 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|----------|----|-----------------------------------| -| dbInstanceId | Query | UUID | O | DB 인스턴스의 식별자 | -| measureNames | Query | Array | O | 조회 지표 목록
- 최소 크기: `1` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| interval | Query | Number | X | 조회 간격 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|-----------|----------| -| metricStatistics | Body | Array | 통계 정보 목록 | -| metricStatistics.measureName | Body | Enum | 측정 항목 유형 | -| metricStatistics.unit | Body | String | 측정값 단위 | -| metricStatistics.values | Body | Array | 측정값 목록 | -| metricStatistics.values.timestamp | Body | Timestamp | 측정 시간 | -| metricStatistics.values.value | Body | Object | 측정값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "metricStatistics": [ + "modifiedParameters": [ { - "measureName": "MYSQL_STATUS", - "unit": "", - "values": [ - [ - 1679298540, - "1" - ], - [ - 1679298600, - "1" - ], - [ - 1679298660, - "1" - ] - ] + "value": "value-example" } ] } @@ -4488,64 +5103,53 @@ GET /v4.0/metric-statistics

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 +### 파라미터 그룹 재설정하기 -### 이벤트 카테고리 +```http +PUT /v4.0/parameter-groups/{parameterGroupId}/reset +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 이벤트 목록 조회 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -```http -GET /v4.0/events -``` +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 프로젝트 정보 -#### 필요 권한 +### 프로젝트 멤버 목록 보기 -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMySQL:Event.List | 이벤트 목록 보기 | +```http +GET /v4.0/project/members +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| eventCategoryType | Query | Enum | O | 조회할 이벤트 카테고리 유형
- `ALL`: 전체
- `INSTANCE`: DB 인스턴스
- `BACKUP`: 백업
- `DB_SECURITY_GROUP`: DB 보안 그룹
- `TENANT`: 테넌트 | -| sourceId | Query | String | X | 이벤트가 발생한 대상 리소스의 식별자 | -| keyword | Query | String | X | 이벤트 메시지에 포함된 문자열 검색어 | -| ascendingOrder | Query | Enum | X | 이벤트 메시지 정렬 순서
- `ASC`: 오름차순
- `DESC`: 내림차순
- 기본값: `DESC` | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|---------------------------------------| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메시지 목록 | -| events.messages.langCode | Body | String | 언어 코드 | -| events.messages.message | Body | String | 이벤트 메시지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -4557,32 +5161,9 @@ GET /v4.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 28, - "events": [ + "members": [ { - "eventCategoryType": "INSTANCE", - "eventCode": "INSTC_02_01", - "sourceId": "76f00947-356e-4a20-8922-428368cc45ed", - "sourceName": "db-instance", - "messages": [ - { - "langCode": "EN", - "message": "DB instance started" - }, - { - "langCode": "JA", - "message": "DBインスタンスの起動" - }, - { - "langCode": "KO", - "message": "DB 인스턴스 시작" - }, - { - "langCode": "ZH", - "message": "DB instance started" - } - ], - "eventYmdt": "2023-03-20T16:31:59+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -4593,29 +5174,23 @@ GET /v4.0/events --- -### 구독 가능한 이벤트 코드 목록 보기 +### 리전 목록 보기 ```http -GET /v4.0/event-codes +GET /v4.0/project/regions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMySQL:Event.List | 이벤트 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|-------|-------------| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

@@ -4627,10 +5202,9 @@ GET /v4.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "regions": [ { - "eventCode": "INSTC_05_01", - "eventCategoryType": "INSTANCE" + "isEnabled": false } ] } @@ -4640,3 +5214,4 @@ GET /v4.0/event-codes

--- + diff --git a/ko/api-guide-v4.0-ngovc.md b/ko/api-guide-v4.0-ngovc.md index 10401c12..b6630d79 100644 --- a/ko/api-guide-v4.0-ngovc.md +++ b/ko/api-guide-v4.0-ngovc.md @@ -1,35 +1,32 @@ ## Database > RDS for MySQL > API 가이드 -| 리전 | 엔드포인트 | -|-----------|-----------------------------------------------| -| 한국(판교) 리전 | https://kr4-rds-mysql-api.ngovc.com | +## RDS for MySQL API 공통 정보 -## 인증 및 권한 +### 인증 및 권한 -API를 사용하려면 [Public API > API 호출 및 인증](/nhncloud/ko/public-api/api-authentication-ngovc/)을 통해 발급 받은 Bearer 유형의 토큰이 필요합니다. +RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. 발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|--------|--------|----|-------------------------------------------------------------| -| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | +| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. -또한 프로젝트 멤버 역할에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER`로 구분하여 권한을 부여할 수 있습니다. - -* `RDS for MySQL ADMIN` 권한은 모든 기능을 사용 가능합니다. -* `RDS for MySQL VIEWER` 권한은 정보를 조회하는 기능만 사용 가능합니다. +* `RDS for MySQL ADMIN` 역할은 API 실행에 필요한 모든 권한이 부여됩니다. +* `RDS for MySQL VIEWER` 역할은 정보를 조회하는 권한만 부여됩니다. * DB 인스턴스를 생성, 수정, 삭제하거나, DB 인스턴스를 대상으로 하는 어떠한 기능도 사용할 수 없습니다. - * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용 가능합니다. + * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용할 수 있습니다. API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같은 오류가 발생합니다. -| resultCode | resultMessage | 설명 | -|------------|---------------|-------------| -| 80401 | Unauthorized | 인증에 실패했습니다. | -| 80403 | Forbidden | 권한이 없습니다. | +| resultCode | resultMessage | 설명 | +|------------|---------------|-----| +| 80401 | Unauthorized | 인증에 실패했습니다. | +| 80403 | Forbidden | 권한이 없습니다. | -## 응답 공통 정보 +### 응답 공통 정보 모든 API 요청에 '200 OK'로 응답합니다. 자세한 응답 결과는 응답 본문의 헤더를 참고합니다. @@ -45,54 +42,67 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 ``` #### 필드 -| 이름 | 형식 | 설명 | -|---------------|---------|-----------------------------------------| -| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | -| resultMessage | String | 결과 메시지 | -| isSuccessful | Boolean | 성공 여부 | - - -## DB 엔진 유형 - -| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | -|--------------|----------|-----------------|--------| -| MYSQL\_V5633 | X | X | NATIVE | -| MYSQL\_V5715 | O | O | NATIVE | -| MYSQL\_V5719 | O | O | NATIVE | -| MYSQL\_V5726 | O | O | NATIVE | -| MYSQL\_V5731 | X | X | NATIVE | -| MYSQL\_V5733 | O | X | NATIVE, SHA256 | -| MYSQL\_V5737 | O | O | NATIVE, SHA256 | -| MYSQL\_V8018 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8023 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8028 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8032 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8033 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8034 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8405 | O | O | CACHING_SHA2 | +| 이름 | 형식 | 설명 | +|-----|-----|-----| +| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | +| resultMessage | String | 결과 메시지 | +| isSuccessful | Boolean | 성공 여부 | + +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(대구) 리전 | https://ngovc-kr4-rds-proxy.cloud.toastoven.net | + +### DB 엔진 유형 + +| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | +|------------|----------|------------------|------------| +| MYSQL_V5633 | X | X | NATIVE | +| MYSQL_V5715 | O | O | NATIVE | +| MYSQL_V5719 | O | O | NATIVE | +| MYSQL_V5726 | O | O | NATIVE | +| MYSQL_V5731 | X | X | NATIVE | +| MYSQL_V5733 | O | X | NATIVE, SHA256 | +| MYSQL_V5737 | O | O | NATIVE, SHA256 | +| MYSQL_V8018 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8023 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8028 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8032 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8033 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8034 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8405 | O | O | CACHING_SHA2 | +| MYSQL_V8406 | O | O | CACHING_SHA2 | +| MYSQL_V8407 | O | O | CACHING_SHA2 | +| MYSQL_V8408 | O | O | CACHING_SHA2 | * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## 프로젝트 정보 +## DB 보안 그룹 -### 리전 목록 보기 +### DB 보안 그룹 진행 상태 -```http -GET /v4.0/project/regions -``` +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | -#### 필요 권한 +### DB 보안 그룹 목록 보기 -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMySQL:Project.Get | 프로젝트 정보 조회 | +```http +GET /v4.0/db-security-groups +``` #### 요청 @@ -100,11 +110,16 @@ GET /v4.0/project/regions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------|------|---------|----------------------------------------------------------------------------| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -116,69 +131,52 @@ GET /v4.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ - { - "regionCode": "KR1", - "isEnabled": true - }, - { - "regionCode": "KR2", - "isEnabled": true - }, + "totalCounts": 1, + "dbSecurityGroups": [ { - "regionCode": "JP1", - "isEnabled": true + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } ``` +

--- -### 프로젝트 멤버 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v4.0/project/members +POST /v4.0/db-security-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMySQL:Project.Get | 프로젝트 정보 조회 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|--------|-----------------| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ { - "memberId": "1b1d3627-507a-49ea-8cb7-c86dfa9caa58", - "memberName": "홍길동", - "emailAddress": "gildong.hong@nhn.com", - "phoneNumber": "+821012345678" + "description": "description-example" } ] } @@ -187,35 +185,11 @@ GET /v4.0/project/members

---- - -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 - -```http -GET /v4.0/db-flavors -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|------------------| -| RDSforMySQL:DbFlavor.List | DB 인스턴스 사양 목록 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -227,14 +201,7 @@ GET /v4.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbFlavorName": "m2.c1m2", - "ram": 2048, - "vcpus": 1 - } - ] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -243,34 +210,62 @@ GET /v4.0/db-flavors --- -## 네트워크 - -### 서브넷 목록 보기 +### DB 보안 그룹 삭제하기 ```http -GET /v4.0/network/subnets +DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 상세 보기 -| 권한명 | 설명 | -|------------------------------------------|-----------| -| RDSforMySQL:Network.List | 서브넷 목록 보기 | +```http +GET /v4.0/db-security-groups/{dbSecurityGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|---------|------------------| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | UUID | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| rules | Body | Array | DB 보안 그룹 규칙 목록 | +| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | 포트 객체 | +| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | 최소 포트 범위 | +| rules.port.maxPort | Body | Number | 최대 포트 범위 | +| rules.cidr | Body | String | CIDR | +| rules.createdYmdt | Body | DateTime | 생성 일시 | +| rules.updatedYmdt | Body | DateTime | 수정 일시 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -282,15 +277,17 @@ GET /v4.0/network/subnets "resultMessage": "SUCCESS", "isSuccessful": true }, - "subnets": [ + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ { - "subnetId": "1b2a9b23-0725-4b92-8c78-35db66b8ad9f", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/24", - "usingGateway": true, - "availableIpCount": 240 + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -299,81 +296,59 @@ GET /v4.0/network/subnets --- -## DB 엔진 - -### DB 엔진 목록 보기 +### DB 보안 그룹 수정하기 ```http -GET /v4.0/db-versions +PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|-------------| -| RDSforMySQL:DbVersion.List | DB 엔진 목록 보기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|---------|-----------------------| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "dbVersions": [ - { - "dbVersion": "MYSQL_V8028", - "dbVersionName": "MySQL 8.0.28", - "restorableFromObs": true - } - ] + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 데이터 스토리지 +이 API는 응답 본문을 반환하지 않습니다. + +--- -### 데이터 스토리지 타입 목록 보기 +### DB 보안 그룹 규칙 삭제하기 ```http -GET /v4.0/storage-types +DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------|-------------------| -| RDSforMySQL:Storage.List | 데이터 스토리지 타입 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|-------|----------------| -| storageTypes | Body | Array | 데이터 스토리지 타입 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -385,10 +360,7 @@ GET /v4.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [ - "General SSD", - "General HDD" - ] + "jobId": "jobId-example" } ``` @@ -397,56 +369,51 @@ GET /v4.0/storage-types --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### DB 보안 그룹 규칙 생성하기 ```http -GET /v4.0/jobs/{jobId} +POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------|-------------| -| RDSforMySQL:Job.Get | 작업 정보 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------|-----|------|----|---------| -| jobId | URL | UUID | O | 작업의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------|------|----------|-----------------------------------| -| jobId | Body | UUID | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태 | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | Enum | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | UUID | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -458,16 +425,7 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "0ddb042c-5af6-43fb-a914-f4dd0540eb7c", - "jobStatus": "RUNNING", - "resourceRelations": [ - { - "resourceType": "DB_INSTANCE", - "resourceId": "56b39dcf-65eb-47ec-9d4f-09f160ba2266" - } - ], - "createdYmdt": "2023-02-22T20:47:12+09:00", - "updatedYmdt": "2023-02-22T20:49:46+09:00" + "jobId": "jobId-example" } ``` @@ -476,33 +434,52 @@ GET /v4.0/jobs/{jobId} --- -## DB 인스턴스 그룹 - -### DB 인스턴스 그룹 목록 보기 +### DB 보안 그룹 규칙 수정하기 ```http -GET /v4.0/db-instance-groups +PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` -#### 필요 권한 +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | -| 권한명 | 설명 | -|--------------------------------------------------|------------------| -| RDSforMySQL:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | +

예시 +

-#### 요청 +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` -이 API는 요청 본문을 요구하지 않습니다. +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------|------|----------|--------------------------------------------------------------------------| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -514,14 +491,7 @@ GET /v4.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ - { - "dbInstanceGroupId": "05de0746-89fd-49c8-94f9-9c5b1df97009", - "replicationType": "STANDALONE", - "createdYmdt": "2023-02-13T17:35:20+09:00", - "updatedYmdt": "2023-02-13T17:35:20+09:00" - } - ] + "jobId": "jobId-example" } ``` @@ -530,38 +500,26 @@ GET /v4.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v4.0/db-instance-groups/{dbInstanceGroupId} +GET /v4.0/db-versions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|------------------| -| RDSforMySQL:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|-----------------| -| dbInstanceGroupId | URL | UUID | O | DB 인스턴스 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |

예시

@@ -573,17 +531,11 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "36617a8e-0df8-4b16-b6ea-6306019e95da", - "replicationType": "STANDALONE", - "dbInstances": [ + "dbVersions": [ { - "dbInstanceId": "6d2db0ef-fe9b-4ed4-97b1-d97fcb4cf1b8", - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE" + "restorableFromObs": false } - ], - "createdYmdt": "2023-03-03T17:38:14+09:00", - "updatedYmdt": "2023-03-03T17:38:14+09:00" + ] } ``` @@ -616,8 +568,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `BACKING_UP` | 백업 중 | | `CANCELING` | 취소 중 | | `CREATING` | 생성 중 | -| `CREATING_SCHEMA` | DB 스키마 생성 중 | -| `CREATING_USER` | 사용자 생성 중 | +| `CREATING_SCHEMA` | DB 스키마 생성 중 | +| `CREATING_USER` | 사용자 생성 중 | | `DELETING` | 삭제 중 | | `DELETING_SCHEMA` | DB 스키마 삭제 중 | | `DELETING_USER` | 사용자 삭제 중 | @@ -636,8 +588,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `STARTING` | 시작 중 | | `STOPPING` | 정지 중 | | `SYNCING_SCHEMA` | DB 스키마 동기화 중 | -| `SYNCING_USER` | 사용자 동기화 중 | -| `UPDATING_USER` | 사용자 수정 중 | +| `SYNCING_USER` | 사용자 동기화 중 | +| `UPDATING_USER` | 사용자 수정 중 | ### DB 인스턴스 목록 보기 @@ -645,32 +597,26 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|---------------| -| RDSforMySQL:DbInstance.List | DB 인스턴스 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | -| dbInstances.dbPort | Body | Number | DB 포트 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태 | -| dbInstances.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstances.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstances | Body | Array | DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | +| dbInstances.dbPort | Body | Number | DB 포트 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbInstances.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstances.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -684,17 +630,7 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "createdYmdt": "2023-01-23T12:03:13+09:00", - "updatedYmdt": "2023-02-02T17:20:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -705,51 +641,123 @@ GET /v4.0/db-instances --- -### DB 인스턴스 상세 보기 +### DB 인스턴스 생성하기 ```http -GET /v4.0/db-instances/{dbInstanceId} +POST /v4.0/db-instances ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| authenticationPlugin | Body | Enum | X | 인증 Plugin
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | TLS Option
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE", + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| dbPort | Body | Number | DB 포트 | -| dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| progressStatus | Body | Enum | DB 인스턴스의 현재 작업 진행 상태 | -| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | -| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | -| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | -| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | -| supportAuthenticationPlugin | Body | Boolean | 인증 플러그인 지원 여부 | -| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | -| needMigration | Body | Boolean | 마이그레이션 필요 여부 | -| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -761,27 +769,7 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "dbFlavorId": "e9ed4ef6-78d7-46fa-ace9-32481e97f3b7", - "parameterGroupId": "b03e8b13-de27-4d04-a488-ff5689589372", - "dbSecurityGroupIds": ["01908c35-d2c9-4852-baf0-17f06ec42c03"], - "notificationGroupIds": ["83a62a33-ddbf-4a04-8653-e54463d5b1ac"], - "useDeletionProtection": false, - "useSlowQueryAnalysis": true, - "supportAuthenticationPlugin": true, - "needToApplyParameterGroup": false, - "needMigration": false, - "supportDbVersionUpgrade": true, - "createdYmdt": "2022-11-23T12:03:13+09:00", - "updatedYmdt": "2022-12-02T17:20:17+09:00" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -790,96 +778,167 @@ GET /v4.0/db-instances/{dbInstanceId} --- -### DB 인스턴스 생성하기 +### 오브젝트 스토리지를 이용한 DB 인스턴스 복원 ```http -POST /v4.0/db-instances +POST /v4.0/db-instances/restore-from-obs ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Create | DB 인스턴스 생성하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|-------|---------|----|---------------------------------------------------------------------| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbUserName | Body | String | O | DB 사용자 계정명 | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | +| restore.username | Body | String | O | NHN Cloud 계정 혹은 IAM 멤버 ID | +| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | +| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | +| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "dbVersion": "ENUM_VALUE", + "useHighAvailability": false, + "pingInterval": 3, "storage": { - "storageType": "General SSD", - "storageSize": 20 + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" }, "backup": { - "backupPeriod": 1, + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": true, "backupSchedules": [ { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR" + "backupWndDuration": "HALF_AN_HOUR" } ] - } + }, + "restore": { + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" + }, + "useDefaultNotification": false, + "useSlowQueryAnalysis": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 인스턴스 삭제하기 + +```http +DELETE /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| deleteAutoBackup | Body | Boolean | X | 자동 백업 삭제 여부
- 기본값: `false` | + +
예시 +

+ +```json +{ + "deleteAutoBackup": false } ``` @@ -888,10 +947,106 @@ POST /v4.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 인스턴스 상세 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| dbPort | Body | Number | DB 포트 | +| dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | +| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | +| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | +| supportAuthenticationPlugin | Body | Boolean | 인증 plugin 지원 여부 | +| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | +| needMigration | Body | Boolean | 마이그레이션 필요 여부 | +| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "dbFlavorId": "dbFlavorId-example", + "parameterGroupId": "parameterGroupId-example", + "dbSecurityGroupIds": [], + "notificationGroupIds": [], + "useDeletionProtection": false, + "useSlowQueryAnalysis": false, + "supportAuthenticationPlugin": false, + "needToApplyParameterGroup": false, + "needMigration": false, + "supportDbVersionUpgrade": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ --- ### DB 인스턴스 수정하기 @@ -900,40 +1055,599 @@ POST /v4.0/db-instances PUT /v4.0/db-instances/{dbInstanceId} ``` -#### 필요 권한 +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbVersion | Body | Enum | X | DB 엔진 버전 코드 | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | +| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
- 기본값: `false` | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbPort": 1, + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "useSlowQueryAnalysis": false, + "useDummy": false, + "dbSecurityGroupIds": [], + "executeBackup": false, + "useOnlineFailover": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 백업 정보 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backupPeriod | Body | Number | 백업 보관 기간(일) | +| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | +| backupRetryCount | Body | Number | 백업 재시도 횟수 | +| replicationRegion | Body | Enum | 백업 복제 리전
- KR4: `한국(대구)` | +| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration
- HALF_AN_HOUR
- ONE_HOUR
- ONE_HOUR_AND_HALF
- TWO_HOURS
- TWO_HOURS_AND_HALF
- THREE_HOURS | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "backupPeriod": 1, + "ftwrlWaitTimeout": 1, + "backupRetryCount": 1, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +--- + +### 백업 정보 수정하기 + +```http +PUT /v4.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +
예시 +

+ +```json +{ + "backupPeriod": 0, + "ftwrlWaitTimeout": 0, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 바이너리 로그 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/binlogs +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| binLogs | Body | Array | BinLog 파일 목록 | +| binLogs.binLogFileName | Body | String | BinLog 파일 이름 | +| binLogs.binLogFileSize | Body | Number | BinLog 파일 크기 (Byte) | +| binLogs.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

-| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "binLogs": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### 바이너리 로그 삭제 + +```http +POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| lastBinLogFileName | Body | String | O | 삭제할 마지막 BinLog 파일 이름 (해당 파일 직전까지 삭제됨) | + +
예시 +

+ +```json +{ + "lastBinLogFileName": "mysql-bin.000010" +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 인증서 파일 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/certificates +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| certificates | Body | Array | 인증서 파일 목록 | +| certificates.fileName | Body | String | 인증서 파일 이름 | +| certificates.certificateType | Body | Enum | 인증서 타입
- CA_FILE
- CERT_FILE
- KEY_FILE | +| certificates.fileSize | Body | Number | 인증서 파일 크기(Byte) | +| certificates.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "certificates": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### 인증서 파일 내보내기 + +```http +POST /v4.0/db-instances/{dbInstanceId}/certificates/upload +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| certificateTypes | Body | Array | O | 업로드할 인증서 타입 목록 | +| tenantId | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 인증서 파일의 경로 | + +
예시 +

+ +```json +{ + "certificateTypes": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 스키마 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSchemas | Body | Array | DB 스키마 목록 | +| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | +| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | +| dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbSchemas": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### DB 스키마 생성하기 + +```http +POST /v4.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaName | Body | String | O | DB 스키마 이름
- 최대 길이: `64`
- 영문 시작, 영문/숫자/_ 허용, 1~64자, MySQL 예약어 불가 | + +
예시 +

+ +```json +{ + "dbSchemaName": "dbSchemaName-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 스키마 삭제하기 + +```http +DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 사용자 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/db-users +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbUsers | Body | Array | DB 사용자 목록 | +| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | +| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | +| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- STABLE
- CREATING
- UPDATING
- SYNCING
- DELETING
- DELETED | +| dbUsers.createdYmdt | Body | DateTime | 생성 일시 | +| dbUsers.updatedYmdt | Body | DateTime | 수정 일시 | +| dbUsers.authenticationPlugin | Body | Enum | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| dbUsers.tlsOption | Body | Enum | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbUsers": [ + { + "tlsOption": "NONE" + } + ] +} +``` + +

+
+ +--- + +### DB 사용자 생성하기 + +```http +POST /v4.0/db-instances/{dbInstanceId}/db-users +``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|---------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbPort | Body | Number | X | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbVersion | Body | Enum | X | DB 엔진 유형 | -| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| host | Body | String | O | DB 사용자 계정의 호스트명
- 최대 길이: `45` | +| authorityType | Body | Enum | O | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |
예시

```json { - "dbInstanceName": "db-instance2", - "description": "description2", - "dbPort": 10001, - "dbSecurityGroupIds": [], - "executeBackup": true + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "host": "host-example", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" } ``` @@ -942,228 +1656,249 @@ PUT /v4.0/db-instances/{dbInstanceId} #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 삭제하기 +### DB 사용자 삭제하기 ```http -DELETE /v4.0/db-instances/{dbInstanceId} +DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Delete | DB 인스턴스 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 재시작하기 +### DB 사용자 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/restart +PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Restart | DB 인스턴스 재시작하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | +| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| authorityType | Body | Enum | X | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | -#### 요청 +
예시 +

+ +```json +{ + "dbPassword": "dbPassword", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- -### DB 인스턴스 강제 재시작하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/force-restart +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|------------------| -| RDSforMySQL:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | +

+
-#### 요청 +--- -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +### DB 인스턴스 삭제 보호 설정 변경 +```http +PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection +``` -#### 응답 +#### 요청 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "useDeletionProtection": false } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 시작하기 +### DB 인스턴스 강제 재시작하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/start +POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Start | DB 인스턴스 시작하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 정지하기 +### 고가용성 정보 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/stop +GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Stop | DB 인스턴스 정지하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| useHighAvailability | Body | Boolean | 고가용성 사용 여부
- 기본값: `false` | +| haStatus | Body | Enum | 고가용성 상태
- CREATED: `생성됨`
- STABLE: `정상`
- PAUSING: `일시 중지 중`
- DISABLE: `정지`
- DISABLE_MASTER_IN_REPLICATION: `마스터 비정상 복제 감지로 인한 고가용성 중단`
- DISABLE_MHA_PROCESS: `고가용성 프로세스 중단`
- DISABLE_REPLICATION_STOP: `복제 중단으로 인한 고가용성 중단`
- DISABLE_REPLICATION_DELAY: `복제 지연으로 인한 고가용성 중단`
- FAILOVER_STARTED: `장애 조치 시작`
- FAILOVER_FAILED: `장애 조치 실패`
- FAILOVER_COMPLETED: `장애 조치 완료`
- DELETED: `삭제됨`
- PAUSED: `일시 중지`
- PAUSED_DUE_TO_TASK: `작업으로 인한 일시 중지`
- MASTER_FAILURE_DETECTION: `마스터 장애 감지` | +| pingInterval | Body | Number | Ping 간격(초) | +| pingType | Body | String | Ping 방식 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "useHighAvailability": false, + "haStatus": "CREATED", + "pingInterval": 1, + "pingType": "pingType-example" +} +``` + +

+
--- -### DB 인스턴스 복제하기 +### 고가용성 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/replicate +PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Replicate | DB 인스턴스 복제하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -#### 요청 +#### 고가용성 사용 시 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록
- 기본값: 원본 DB 인스턴스 값 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: 원본 DB 인스턴스 값 | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄)
- 기본값: 원본 DB 인스턴스 값 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00`
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간
- 기본값: 원본 DB 인스턴스 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` |
예시

```json { - "dbInstanceName": "db-instance-replicate", - "description": "description", - "dbPort": 11000, - "network": { - "availabilityZone": "kr-pub-a" - }, - "storage": { - "stroageSize": 100 - } + "useHighAvailability": false, + "pingInterval": 1 } ``` @@ -1172,147 +1907,138 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 승격하기 +### 고가용성 일시 중지하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/promote +POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Promote | DB 인스턴스 승격하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 재구축하기 +### 고가용성 복구하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/rebuild +POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Rebuild | DB 인스턴스 재구축하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 복원 정보 조회 +### 고가용성 다시 시작하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info +POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | -| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | -| restorableBackups | Body | Array | 복원 가능한 백업 목록 | -| restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | -| restorableBackups.backup.backupName | Body | String | 백업 이름 | -| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | -| restorableBackups.backup.backupType | Body | Enum | 백업 유형
  • `AUTO`: 자동
  • `MANUAL`: 수동
| -| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
  • `BACKING_UP`: 백업 중인 경우
  • `COMPLETED`: 백업이 완료된 경우
  • `DELETING`: 백업이 삭제 중인 경우
  • `DELETED`: 백업이 삭제된 경우
  • `ERROR`: 오류가 발생한 경우
| -| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| restorableBackups.backup.dbVersion | Body | String | DB 엔진 유형 | -| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | -| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | -| restorableBackups.backup.binLogPosition | Body | Number | 바이너리 로그 파일 위치 | -| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | -| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | -| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "oldestRestorableYmdt": "2023-07-09T16:33:33+09:00", - "latestRestorableYmdt": "2023-07-10T15:44:44+09:00", - "restorableBackups": [ - { - "backup": { - "backupId": "145d889a-fe08-474f-8f58-bde576ff96a9", - "backupName": "example-backup-name", - "backupStatus": "COMPLETED", - "dbInstanceId": "dba1be25-9429-4589-9716-7fb6daad7cb9", - "dbInstanceName": "original-db-instance-name", - "dbVersion": "MYSQL_V8028", - "backupType": "MANUAL", - "backupSize": 8299904, - "useBackupLock": true, - "failoverCount": 0, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 367916037, - "createdYmdt": "2023-07-10T15:44:44+09:00", - "updatedYmdt": "2023-07-10T15:46:07+09:00" - }, - "restorableBinLogs": [ - "mysql-bin.000001" - ] - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1321,45 +2047,25 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info --- -### 복원될 마지막 쿼리 조회 +### 고가용성 분리하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query +POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|------|----|-----------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restoreType | Query | Enum | O | 복원 타입 종류

  • `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
  • `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
| - -#### restoreType이 `TIMESTAMP`인 경우 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-------|----------|----|-------------------------------------------| -| restoreYmdt | Query | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +#### 요청 -#### restoreType이 `BINLOG`인 경우 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------|-------|--------|----|--------------------| -| backupId | Query | UUID | O | 복원에 사용할 백업의 식별자 | -| binLogFileName | Query | String | O | 복원에 사용할 바이너리 로그 이름 | -| binLogPosition | Query | Number | O | 복원에 사용할 바이너리 로그 위치 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|----------|--------------------------------------| -| executedYmdt | Body | DateTime | 쿼리 수행 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| lastQuery | Body | String | 마지막 수행 쿼리 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -1371,8 +2077,7 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query "resultMessage": "SUCCESS", "isSuccessful": true }, - "executedYmdt": "2023-03-17T14:02:29+09:00", - "lastQuery": "INSERT INTO `test`.`test`SET @1='0123'" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1381,366 +2086,189 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query --- -### 복원 +### 로그 파일 목록 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/restore +GET /v4.0/db-instances/{dbInstanceId}/log-files ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Restore | DB 인스턴스 복원하기 | - -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restore | Body | Object | O | 복원 정보 객체 | -| restore.restoreType | Body | Enum | O | 복원 타입 종류

  • `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
  • `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
  • `BACKUP`: 기존에 생성한 백업을 이용한 스냅숏 복원 타입
| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
  • 최솟값: `3306`
  • 최댓값: `43306`
| -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
  • 기본값: `false`
| -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
  • 기본값: `3`
  • 최솟값: `1`
  • 최댓값: `600`
| -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
  • 기본값: `false`
| -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
  • 기본값: `false`
| -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
  • 예시: `kr-pub-a`
| -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
  • 최솟값: `20`
  • 최댓값: `2048`
| -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
  • 최솟값: `0`
  • 최댓값: `730`
| -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
  • 기본값: `1800`
  • 최솟값: `0`
  • 최댓값: `21600`
| -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
  • 기본값: `0`
  • 최솟값: `0`
  • 최댓값: `10`
| -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
  • `KR1`: 한국(판교)
  • `KR2`: 한국(평촌)
  • `JP1`: 일본(도쿄)
| -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
  • 기본값: `true`
| -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
  • 예시: `00:00:00`
| -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
  • `HALF_AN_HOUR`: 30분
  • `ONE_HOUR`: 1시간
  • `ONE_HOUR_AND_HALF`: 1시간 30분
  • `TWO_HOURS`: 2시간
  • `TWO_HOURS_AND_HALF`: 2시간 30분
  • `THREE_HOURS`: 3시간
| +이 API는 요청 본문을 요구하지 않습니다. -#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|----------|----|------------------------------------------------------------------------------------------------| -| restore.restoreYmdt | Body | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD)
복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능하다. | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| logFiles | Body | Array | 로그 파일 목록 | +| logFiles.logFileName | Body | String | 로그 파일 이름 | +| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- ERROR
- BINLOG
- GENERAL
- SLOW_QUERY
- AUDIT
- BACKUP | +| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | +| logFiles.createdYmdt | Body | DateTime | 생성 일시 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "TIMESTAMP", - "restoreYmdt": "2023-07-10T15:44:44+09:00" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "logFiles": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) +--- + +### 로그 파일 내보내기 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------------|------|--------|----|--------------------| -| restore.backupId | Body | UUID | O | 복원에 사용할 백업의 식별자 | -| restore.binLog | Body | Object | O | 바이너리 로그 정보 객체 | -| restore.binLog.binLogFileName | Body | String | O | 복원에 사용할 바이너리 로그 이름 | -| restore.binLog.binLogPosition | Body | Number | O | 복원에 사용할 바이너리 로그 위치 | +```http +POST /v4.0/db-instances/{dbInstanceId}/log-files/export +``` -* 바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. +#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| logFileNames | Body | Array | O | 로그 파일 이름 목록 | +| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BINLOG", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36", - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 1234567 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "logFileNames": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

-
- -#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|------|------------------------------|-----------------| -| restore.backupId | Body | UUID | O(restoreType이 `BACKUP`인 경우) | 복원에 사용할 백업의 식별자 | +
+#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BACKUP", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - - --- -### 오브젝트 스토리지로부터 복원 +### 로그 파일 내용 보기 ```http -POST /v4.0/db-instances/restore-from-obs +GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------------|-------------------------| -| RDSforMySQL:DbInstance.RestoreFromObs | DB 인스턴스 오브젝트 스토리지로부터 복원 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|----------------------------------------------------------------------------------------| -| restore | Body | Object | O | 복원 정보 객체 | -| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | -| restore.username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | -| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | -| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
  • 최솟값: `3306`
  • 최댓값: `43306`
| -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
  • 기본값: `false`
| -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
  • 기본값: `3`
  • 최솟값: `1`
  • 최댓값: `600`
| -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
  • 기본값: `false`
| -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
  • 기본값: `false`
| -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
  • 예시: `kr-pub-a`
| -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
  • 최솟값: `20`
  • 최댓값: `2048`
| -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
  • 최솟값: `0`
  • 최댓값: `730`
| -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
  • 기본값: `1800`
  • 최솟값: `0`
  • 최댓값: `21600`
| -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
  • 기본값: `0`
  • 최솟값: `0`
  • 최댓값: `10`
| -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
  • `KR1`: 한국(판교)
  • `KR2`: 한국(평촌)
  • `JP1`: 일본(도쿄)
| -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
  • 기본값: `true`
| -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
  • 예시: `00:00:00`
| -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
  • `HALF_AN_HOUR`: 30분
  • `ONE_HOUR`: 1시간
  • `ONE_HOUR_AND_HALF`: 1시간 30분
  • `TWO_HOURS`: 2시간
  • `TWO_HOURS_AND_HALF`: 2시간 30분
  • `THREE_HOURS`: 3시간
| +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| logFileName | URL | UUID | O | 로그 파일 이름 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| content | Body | String | 로그 파일 내용 (최대 65533 bytes) |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbVersion": "MYSQL_V8028", - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "tenantId":"tenant-id", - "username":"username", - "password":"password", - "targetContainer":"targetContainer", - "objectPath":"objectPath" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "content": "content-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - - --- - -### DB 인스턴스 삭제 보호 설정 변경하기 +### DB 인스턴스 유지 관리 목록 보기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection +GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| type | Query | String | X | | +| statuses | Query | String | X | | +| category | Query | String | X | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 유지 관리 목록 갯수 | +| maintenances | Body | Array | 유지 관리 목록 | +| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| maintenances.description | Body | String | 유지 관리 설명 | +| maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| maintenances.payload | Body | Object | 유지 관리 타입에 따른 Payload | +| maintenances.required | Body | Boolean | 유지 관리 필수 여부 | +| maintenances.deadlineYmdt | Body | DateTime | 유지 관리 강제 적용 일시 | +| maintenances.status | Body | Enum | 유지 관리 상태
- PENDING: `대기`
- READY: `준비`
- RUNNING: `실행 중`
- COMPLETED: `완료`
- FAILED: `실패`
- EXCLUDED: `제외`
- DELETED: `삭제`
- UNKNOWN | +| maintenances.executionType | Body | Enum | 유지 관리 실행 타입
- SCHEDULED: `예약 실행 (유지 관리 기간 자동 실행)`
- MANUAL: `수동 실행 (즉시 실행)`
- FORCED: `강제 실행 (데드라인 초과 자동 실행)` | +| maintenances.addedYmdt | Body | DateTime | 유지 관리 스케줄 등록 일시 | +| maintenances.executionStartedYmdt | Body | DateTime | 유지 관리 시작 일시 | +| maintenances.executionCompletedYmdt | Body | DateTime | 유지 관리 종료 일시 |
예시

@@ -1751,7 +2279,13 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "totalCounts": 1, + "maintenances": [ + { + "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -1760,178 +2294,250 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection --- -### 고가용성 수정하기 +### DB 인스턴스 유지 관리 즉시 실행하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/high-availability +POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Modify | 고가용성 수정하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload | -#### 요청 +

예시 +

+ +```json +{ + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|---------|----|------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 고가용성 다시 시작하기 +### DB 인스턴스 유지 관리 예약하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume +POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------------|--------------| -| RDSforMySQL:HighAvailability.Resume | 고가용성 다시 시작하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 고가용성 일시 중지하기 +### DB 인스턴스 유지 관리 삭제하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause +DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|--------------| -| RDSforMySQL:HighAvailability.Pause | 고가용성 일시 중지하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| maintenanceId | URL | UUID | O | 유지 관리 아이디 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 고가용성 복구하기 +### 네트워크 정보 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair +GET /v4.0/db-instances/{dbInstanceId}/network-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Repair | 고가용성 복구하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | +| subnet | Body | Object | 서브넷 객체 | +| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnet.subnetCidr | Body | String | 서브넷의 CIDR | +| endPoints | Body | Array | 접속 정보 목록 | +| endPoints.domain | Body | String | 도메인 | +| endPoints.ipAddress | Body | String | IP 주소 | +| endPoints.endPointType | Body | String | 접속 정보 타입 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "availabilityZone": "availabilityZone-example", + "subnet": { + "subnetId": "subnetId-example", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example" + }, + "endPoints": [ + { + "endPointType": "endPointType-example" + } + ] +} +``` + +

+
--- -### 고가용성 분리하기 +### 네트워크 정보 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/split +PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Split | 고가용성 분리하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "usePublicAccess": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 데이터 스토리지 정보 보기 +### DB 인스턴스 승격하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/storage-info +POST /v4.0/db-instances/{dbInstanceId}/promote ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|---------|--------------------------------------------------------------------------------------| -| storageType | Body | Enum | 데이터 스토리지 타입 | -| storageSize | Body | Number | 데이터 스토리지 크기(GB) | -| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- `DETACHED`: 부착되지 않음
- `ATTACHED`: 부착됨
- `DELETED`: 삭제됨 | -| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | -| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | -| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -1943,89 +2549,150 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "General SSD", - "storageSize": 20, - "storageStatus": "ATTACHED", - "storageAutoscale": { - "useStorageAutoscale": true, - "threshold": 80, - "maxStorageSize": 100, - "cooldownTime": 10 - } + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### 데이터 스토리지 정보 수정하기 +### DB 인스턴스 재구축하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/storage-info +POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: 현재값
- 최댓값: `2048` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 백업 정보 보기 +### DB 인스턴스 복제하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/backup-info +POST /v4.0/db-instances/{dbInstanceId}/replicate ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부 | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | X | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | X | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|---------|----------------| -| backupPeriod | Body | Number | 백업 보관 기간(일) | -| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | -| backupRetryCount | Body | Number | 백업 재시도 횟수 | -| replicationRegion | Body | Enum | 백업 복제 리전 | -| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | -| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2037,112 +2704,108 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "backupPeriod": 1, - "ftwrlWaitTimeout": 1800, - "backupRetryCount": 0, - "replicationRegion": null, - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### 백업 정보 수정하기 +### DB 인스턴스 재시작하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/backup-info +POST /v4.0/db-instances/{dbInstanceId}/restart ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | -#### 요청 +
예시 +

+ +```json +{ + "useOnlineFailover": false, + "executeBackup": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------------------------|------|---------|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "backupPeriod": 5, - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndBgnTime": "01:00:00", - "backupWndDuration": "TWO_HOURS" - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 네트워크 정보 보기 +### DB 인스턴스 복원 정보 조회 ```http -GET /v4.0/db-instances/{dbInstanceId}/network-info +GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------------------------------------------------------------------------------------------------------------------------------| -| availabilityZone | Body | Enum | DB 인스턴스를 생성할 가용성 영역 | -| subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | UUID | 서브넷의 식별자 | -| subnet.subnetName | Body | UUID | 서브넷을 식별할 수 있는 이름 | -| subnet.subnetCidr | Body | UUID | 서브넷의 CIDR | -| endPoints | Body | Array | 접속 정보 목록 | -| endPoints.domain | Body | String | 도메인 | -| endPoints.ipAddress | Body | String | IP 주소 | -| endPoints.endPointType | Body | Enum | 접속 정보 타입
-`EXTERNAL`: 외부 접속 도메인
-`INTERNAL`: 내부 접속 도메인
-`PUBLIC`: (Deprecated) 외부 접속 도메인
-`PRIVATE`: (Deprecated) 내부 접속 도메인 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | +| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | +| restorableBackups | Body | Array | 복원 가능한 백업 목록 | +| restorableBackups.backup | Body | Object | 백업 정보 객체 | +| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupName | Body | String | 백업 이름 | +| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | +| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | +| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | +| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | +| restorableBackups.backup.binLogPosition | Body | Object | 바이너리 로그 파일 위치 | +| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | +| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | +| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 |
예시

@@ -2154,17 +2817,11 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "kr-pub-a", - "subnet": { - "subnetId": "bd453789-34ae-416c-9f78-05b9e43a46be", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/16" - }, - "endPoints": [ + "oldestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "restorableBackups": [ { - "domain": "ea548a78-d85f-43b4-8ddf-c88d999b9905.internal.kr1.mysql.rds.nhncloudservice.com", - "ipAddress": "192.168.0.2", - "endPointType": "INTERNAL" + "restorableBinLogs": [] } ] } @@ -2175,67 +2832,26 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info --- -### 네트워크 정보 수정하기 - -```http -PUT /v4.0/db-instances/{dbInstanceId}/network-info -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 목록 보기 +### 복원될 마지막 쿼리 조회 ```http -GET /v4.0/db-instances/{dbInstanceId}/db-users +GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|---------------------| -| RDSforMySQL:DbInstanceUser.List | DB 인스턴스 내 사용자 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|-----------------------------------------------------------------------------------------------------------------------------| -| dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | -| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | -| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | -| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `UPDATING`: 수정 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbUsers.authenticationPlugin | Body | Enum | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| dbUsers.tlsOption | Body | Enum | TLS Option
- NONE
- SSL
- X509 | -| dbUsers.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbUsers.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| executedYmdt | Body | DateTime | 쿼리 수행 일시 | +| lastQuery | Body | String | 마지막 수행 쿼리 |

예시

@@ -2247,19 +2863,8 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbUsers": [ - { - "dbUserId": "4b3d530b-fd02-4d59-a620-83d019a67bbb", - "dbUserName": "db-user", - "host": "%", - "authorityType": "DDL", - "dbUserStatus": "STABLE", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE", - "createdYmdt": "2023-03-17T14:02:29+09:00", - "updatedYmdt": "2023-03-17T14:02:31+09:00" - } - ] + "executedYmdt": "2023-12-31T15:00:00+09:00", + "lastQuery": "lastQuery-example" } ``` @@ -2268,45 +2873,138 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users --- -### DB 사용자 생성하기 +### DB 인스턴스 복원 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-users +POST /v4.0/db-instances/{dbInstanceId}/restore ``` +#### 공통 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미입력 시 원본 인스턴스의 사양이 적용됩니다. | +| dbPort | Body | Number | X | DB 포트 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | X | 스토리지 정보 객체. 미입력 시 원본 인스턴스의 스토리지 설정이 적용됩니다. | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미입력 시 원본 인스턴스의 스토리지 타입이 적용됩니다. | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미입력 시 원본 인스턴스의 스토리지 크기가 적용됩니다.
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | X | 네트워크 정보 객체. 미입력 시 원본 인스턴스의 네트워크 설정이 적용됩니다. | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미입력 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미입력 시 랜덤 선택 | +| backup | Body | Object | X | 백업 정보 객체. 미입력 시 원본 인스턴스의 백업 설정이 적용됩니다. | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미입력 시 원본 인스턴스의 백업 보관 기간이 적용됩니다.
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미입력 시 원본 인스턴스의 백업 스케쥴이 적용됩니다. | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.restoreType | Body | Enum | O | 복원 타입
- TIMESTAMP: `복원 가능한 시간 이내의 시간을 이용한 시점 복원`
- BINLOG: `복원 가능한 바이너리 로그 위치를 이용한 시점 복원`
- BACKUP: `기존에 생성한 백업을 이용한 스냅숏 복원` | +| restore.binLog.binLogFileName | Body | String | X | 복원에 사용할 바이너리 로그 이름 | +| restore.binLog.binLogPosition | Body | Object | X | 복원에 사용할 바이너리 로그 위치 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미입력 시 원본 인스턴스의 파라미터 그룹이 적용됩니다. | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록. 미입력 시 원본 인스턴스의 보안 그룹이 적용됩니다. | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -#### 필요 권한 +#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Create | DB 인스턴스 내 사용자 생성하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.restoreYmdt | Body | DateTime | X | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -#### 요청 +복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|-------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserName | Body | String | O | DB 사용자 계정 이름
- 최소 길이: `1`
- 최대 길이: `32` | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| host | Body | String | O | DB 사용자 계정의 호스트명
- 예시: `1.1.1.%` | -| authorityType | Body | Enum | O | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | +#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | +| restore.binLog | Body | Object | X | 복원에 사용할 바이너리 로그 정보 객체 | + +바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. + +#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 설정할 수 있습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 |

예시

```json { - "dbUserName": "db-user", - "dbPassword": "password", - "host": "1.1.1.%", - "authorityType": "CRUD", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "useHighAvailability": false, + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "restoreType": "TIMESTAMP", + "binLog": { + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + } + } + }, + "useDefaultNotification": false, + "useSlowQueryAnalysis": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false } ``` @@ -2315,117 +3013,133 @@ POST /v4.0/db-instances/{dbInstanceId}/db-users #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 사용자 수정하기 +### DB 인스턴스 시작하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +POST /v4.0/db-instances/{dbInstanceId}/start ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Modify | DB 인스턴스 내 사용자 수정하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|-------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | -| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| authorityType | Body | Enum | X | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | +#### 응답 -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 수정할 수 있습니다. -> `authenticationPlugin`의 값은 `dbPassword`와 동시에 수정을 해야 합니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "authorityType": "DDL" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 삭제하기 +### DB 인스턴스 정지하기 ```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +POST /v4.0/db-instances/{dbInstanceId}/stop ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Delete | DB 인스턴스 내 사용자 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 스키마 목록 보기 +### 스토리지 정보 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/db-schemas +GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|---------------------| -| RDSforMySQL:DbInstanceSchema.List | DB 인스턴스 내 스키마 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|------------------------------------------------------------------------------------------------------| -| dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | -| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | -| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbSchemas.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageType | Body | String | 데이터 스토리지 타입 | +| storageSize | Body | Number | 데이터 스토리지 크기(GB) | +| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- DELETED: `삭제됨`
- PENDING_DELETION: `삭제 유예됨`
- DELETION_RESERVED: `삭제 예약됨 (스냅샷 정리 대기)`
- DETACHED: `해제됨`
- ATTACHED: `할당됨` | +| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | +| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | +| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | +| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) |
예시

@@ -2437,14 +3151,15 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSchemas": [ - { - "dbSchemaId": "7c9a94b8-86c1-435d-8af2-82a5e9d53fd4", - "dbSchemaName": "schema", - "dbSchemaStatus": "STABLE", - "createdYmdt": "2023-03-20T13:37:45+09:00" - } - ] + "storageType": "storageType-example", + "storageSize": 1, + "storageStatus": "DELETED", + "storageAutoscale": { + "useStorageAutoscale": false, + "threshold": 1, + "maxStorageSize": 1, + "cooldownTime": 1 + } } ``` @@ -2453,93 +3168,90 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas --- -### DB 스키마 생성하기 +### 스토리지 정보 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-schemas +PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceSchema.Create | DB 인스턴스 내 스키마 생성하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaName | Body | String | O | DB 스키마 이름 | +#### 공통 요청 -#### 응답 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최댓값: `2048` | +| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +#### 스토리지 자동 확장 사용 시 ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -### DB 스키마 삭제하기 +

예시 +

-```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +```json +{ + "storageSize": 1, + "storageAutoscale": { + "useStorageAutoscale": false + } +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceSchema.Delete | DB 인스턴스 내 스키마 삭제하기 | +

+
-#### 요청 +#### 응답 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | +
예시 +

-#### 응답 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 로그 파일 목록 보기 +## DB 인스턴스 그룹 + +### DB 인스턴스 그룹 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/log-files +GET /v4.0/db-instance-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|-----------------------| -| RDSforMySQL:DbInstanceLog.List | DB 인스턴스 내 로그 파일 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|-------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileTypes | Query | Array | X | 로그 파일 타입 종류 목록
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| logFiles | Body | Array | 로그 파일 목록 | -| logFiles.logFileName | Body | String | 로그 파일 이름 | -| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | -| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | -| logFiles.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2551,12 +3263,9 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files "resultMessage": "SUCCESS", "isSuccessful": true }, - "logFiles": [ + "dbInstanceGroups": [ { - "logFileName": "xtra_full.log-20230317", - "logFileType": "BACKUP", - "logFileSize": 4096, - "createdYmdt": "2023-03-17T14:02:29+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2567,107 +3276,81 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files --- -### 로그 파일 내보내기 +### DB 인스턴스 그룹 상세 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/log-files/export +GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. -| 권한명 | 설명 | -|--------------------------------------------------|----------------------| -| RDSforMySQL:DbInstanceLog.Export | DB 인스턴스 내 로그 파일 내보내기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|--------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileNames | Body | Array | O | 로그 파일 이름 목록
- 최소 크기: `1` | -| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "logFileNames": ["xtra_full.log-20230317"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "logs/backup" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +## DB 인스턴스 사양 -### 백업 목록 조회 +### DB 인스턴스 사양 목록 보기 ```http -GET /v4.0/backups +GET /v4.0/db-flavors ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Backup.List | 백업 목록 조회 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|--------|----|----------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| backupType | Query | Enum | X | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동
- 기본값: 전체 | -| dbInstanceId | Query | UUID | X | 원본 DB 인스턴스의 식별자 | -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|-----------------------------------| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | UUID | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태 | -| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형 | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -2679,308 +3362,183 @@ GET /v4.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "backups": [ + "dbFlavors": [ { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupSize": 4996786, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" + "vcpus": 1 } ] } ```

-
- ---- - -### 백업 생성하기 - -```http -POST /v4.0/backups -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Create | 백업 생성하기 | - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|--------|----|------------------------------------------------------------| -| backupName | Body | String | O | 백업을 식별할 수 있는 이름 | -| backupMethodType | Body | Enum | O | 백업 방식 타입 종류
- `FULL`: 전체 백업
- `INCREMENTAL`: 증분 백업 | - -#### 전체 백업(backupMethodType이 `FULL`인 경우) +
-| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|--------------| -| dbInstanceId | Body | UUID | O | DB 인스턴스의 식별자 | +--- +## 가용성 영역 -
예시 -

+### 가용성 영역 목록 보기 -```json -{ - "backupName": "example-backup-name", - "backupMethodType": "FULL", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd" -} +```http +GET /v4.0/availability-zones ``` -

-
+#### 요청 -#### 증분 백업(backupMethodType이 `INCREMENTAL`인 경우) +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|------------| -| baseBackupId | Body | UUID | O | 기준 백업의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZones | Body | Array | 가용성 영역 목록 | +| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | +| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | +| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 |
예시

```json { - "backupName": "example-backup-name", - "backupMethodType": "INCREMENTAL", - "baseBackupId": "3ae7914f-9b42-4729-b125-87417b72cf36" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "availabilityZones": [ + { + "zoneState": { + "available": false + } + } + ] } ```

- -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 백업 내보내기 +## 네트워크 + +### 서브넷 목록 보기 ```http -POST /v4.0/backups/{backupId}/export +GET /v4.0/network/subnets ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Export | 백업 내보내기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |
예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - -> [주의] -> 수동 백업의 경우 백업이 수행된 DB 인스턴스가 존재하지 않으면, 백업을 오브젝트 스토리지로 내보낼 수 없습니다. - --- -### 백업 복원하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v4.0/backups/{backupId}/restore +GET /v4.0/storage-types ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------| -| RDSforMySQL:Backup.Restore | 백업 복원하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Integer | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |
예시

```json - { - "dbInstanceName": "db-instance-restore", - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbPort": 10000, - "parameterGroupId": "132d383c-38e3-468a-a826-5e9a8fff15d0", - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "storageTypes": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 백업 삭제하기 +## 모니터링 + +### 통계 정보 조회 ```http -DELETE /v4.0/backups/{backupId} +GET /v4.0/metric-statistics ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Delete | 백업 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | - -### DB 보안 그룹 목록 보기 +### Metric 목록 보기 ```http -GET /v4.0/db-security-groups +GET /v4.0/metrics ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|----------------| -| RDSforMySQL:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-----------------------------------| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -2992,14 +3550,9 @@ GET /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "metrics": [ { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2022-02-19T19:18:13+09:00" + "unit": "unit-example" } ] } @@ -3010,48 +3563,44 @@ GET /v4.0/db-security-groups --- -### DB 보안 그룹 상세 보기 +## 백업 -```http -GET /v4.0/db-security-groups/{dbSecurityGroupId} -``` +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | -#### 필요 권한 +### 백업 목록 조회 -| 권한명 | 설명 | -|-------------------------------------------------|----------------| -| RDSforMySQL:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | +```http +GET /v4.0/backups +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|----------|--------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다.
- `PORT`: 지정된 포트값으로 설정됩니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | 허용할 트래픽의 원격 소스 | -| rules.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| rules.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3063,30 +3612,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "rules": [ - { - "ruleId": "17c88ef6-95f1-4678-84f9-fee1b22e250d", - "description": "description", - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } - ], - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } + "totalCounts": 1, + "backups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -3095,56 +3626,30 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 생성하기 +### 백업 생성하기 ```http -POST /v4.0/db-security-groups +POST /v4.0/backups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | +| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | +| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "rules": [ - { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0" - } - ] + "backupName": "backupName", + "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "backupMethodType": "FULL" } ``` @@ -3153,48 +3658,48 @@ POST /v4.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|------|---------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | - ---- - -### DB 보안 그룹 수정하기 - -```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|-----------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

+--- + +### 백업 삭제하기 + +```http +DELETE /v4.0/backups/{backupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3205,39 +3710,52 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### DB 보안 그룹 삭제하기 +### 백업 단건 조회 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/backups/{backupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backup | Body | Object | 백업 상세 정보 | +| backup.backupId | Body | String | 백업의 식별자 | +| backup.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| backup.dbVersion | Body | Enum | DB 엔진 버전 | +| backup.utilVersion | Body | String | 유틸리티 버전 | +| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | +| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | +| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | +| backup.backupSize | Body | Number | 백업의 크기(Byte) | +| backup.isReplicable | Body | Boolean | 복제 가능 여부 | +| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | +| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | +| backup.createdYmdt | Body | DateTime | 생성 일시 | +| backup.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3248,6 +3766,26 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true + }, + "backup": { + "backupId": "backupId-example", + "regionCode": "KR4", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupMethodType": "FULL", + "backupFileType": "XBSTREAM", + "backupSize": 1, + "isReplicable": false, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } } ``` @@ -3257,48 +3795,33 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 규칙 생성하기 +### 백업 내보내기 ```http -POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v4.0/backups/{backupId}/export ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT", - "minPort": 10000, - "maxPort": 10000 - }, - "cidr": "0.0.0.0/0" + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -3307,130 +3830,179 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### DB 보안 그룹 규칙 수정하기 - -```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleId | URL | UUID | O | DB 보안 그룹 규칙의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. -

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "DB_PORT" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "0.0.0.0/0" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 보안 그룹 규칙 삭제하기 +### 백업 복원하기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v4.0/backups/{backupId}/restore +``` + +#### 공통 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | +| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 삭제하기 | +

+
-#### 요청 +#### 응답 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|-------|----|---------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleIds | Query | Array | O | DB 보안 그룹 규칙의 식별자 목록 | +
예시 +

-#### 응답 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -## 파라미터 그룹 +## 사용자 그룹 -### 파라미터 그룹 목록 보기 +### 사용자 그룹 목록 보기 ```http -GET /v4.0/parameter-groups +GET /v4.0/user-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.List | 파라미터 그룹 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------|-------|------|----|----------| -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-------------------------------------------------------------------| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3442,15 +4014,10 @@ GET /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroups": [ + "totalCounts": 1, + "userGroups": [ { - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "createdYmdt": "2023-02-31T15:28:17+09:00", - "updatedYmdt": "2023-02-31T15:28:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -3459,50 +4026,41 @@ GET /v4.0/parameter-groups

- --- -### 파라미터 그룹 상세 보기 +### 사용자 그룹 생성하기 ```http -GET /v4.0/parameter-groups/{parameterGroupId} +POST /v4.0/user-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.Get | 파라미터 그룹 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|--------------------------------------------------------------------------------------------------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | UUID | 파라미터 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- `CLIENT`: client
- `MYSQL`: mysql
- `MYSQLD`: mysqld | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- `VARIABLE`: 언제든 수정 가능
- `CONSTANT`: 수정 불가능
- `INIT_VARIABLE`: DB 인스턴스 생성 시에만 수정 가능 | -| parameters.applyType | Body | Enum | 적용 타입
- `SESSION`: 세션 적용
- `FILE`: 설정 파일 적용(재시작 필요)
- `BOTH`: 전체(재시작 필요) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 |
예시

@@ -3514,143 +4072,112 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "parameters": [ - { - "parameterId": "fa040b5e-f29f-46de-8f0d-bba4cb82887a", - "parameterFileGroup": "client", - "parameterName": "socket", - "fileParameterName": "socket", - "value": "/home/tcrds/db/mysql/tmp/mysql.sock", - "defaultValue": "/home/tcrds/db/mysql/tmp/mysql.sock", - "allowedValue": "", - "updateType": "CONSTANT", - "applyType": "BOTH" - } - ], - "createdYmdt": "2023-03-13T11:02:28+09:00", - "updatedYmdt": "2023-03-13T11:02:28+09:00" + "userGroupId": "userGroupId-example" } ```

- --- -### 파라미터 그룹 생성하기 +### 사용자 그룹 삭제하기 ```http -POST /v4.0/parameter-groups +DELETE /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Create | 파라미터 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | - -
예시 -

- -```json -{ - "parameterGroupName": "parameter-group", - "dbVersion": "MYSQL_V8028" -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 복사하기 +### 사용자 그룹 상세 보기 ```http -POST /v4.0/parameter-groups/{parameterGroupId}/copy +GET /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. -| 권한명 | 설명 | -|-------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Copy | 파라미터 그룹 복사하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

```json { - "parameterGroupName": "parameter-group-copy", - "description": "copy" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ + { + "memberId": "memberId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | - --- -### 파라미터 그룹 수정하기 +### 사용자 그룹 수정하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId} +PUT /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |
예시

```json { - "parameterGroupName": "parameter-group" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ``` @@ -3661,6 +4188,33 @@ PUT /v4.0/parameter-groups/{parameterGroupId} 이 API는 응답 본문을 반환하지 않습니다. +--- + +## 알림 그룹 + +### 알림 그룹 목록 보기 + +```http +GET /v4.0/notification-groups +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +

예시

@@ -3670,7 +4224,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -3679,38 +4238,34 @@ PUT /v4.0/parameter-groups/{parameterGroupId} --- -### 파라미터 수정하기 +### 알림 그룹 생성하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/parameters +POST /v4.0/notification-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------|------|--------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ - { - "parameterId": "3abac558-7274-44e1-9f4a-f100f53f67ba", - "value": "0" - } - ] + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], + "userGroupIds": [] } ``` @@ -3719,7 +4274,9 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3730,7 +4287,8 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3739,27 +4297,57 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters --- -### 파라미터 그룹 재설정하기 +### 알림 그룹 삭제하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/reset +DELETE /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. -| 권한명 | 설명 | -|--------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | +--- + +### 알림 그룹 상세 보기 + +```http +GET /v4.0/notification-groups/{notificationGroupId} +``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3770,7 +4358,24 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ + { + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3779,61 +4384,67 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset --- -### 파라미터 그룹 삭제하기 +### 알림 그룹 수정하기 ```http -DELETE /v4.0/parameter-groups/{parameterGroupId} +PUT /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 사용자 그룹 +## 이벤트 -### 사용자 그룹 목록 보기 +### 이벤트 카테고리 -```http -GET /v4.0/user-groups -``` +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. + +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -#### 필요 권한 +### 구독 가능한 이벤트 코드 목록 보기 -| 권한명 | 설명 | -|--------------------------------------------|--------------| -| RDSforMySQL:UserGroup.List | 사용자 그룹 목록 보기 | +```http +GET /v4.0/event-codes +``` #### 요청 @@ -3841,13 +4452,11 @@ GET /v4.0/user-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|-----------------------------------| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |
예시

@@ -3859,12 +4468,9 @@ GET /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "eventCodes": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "eventCategoryType": "ALL" } ] } @@ -3875,37 +4481,30 @@ GET /v4.0/user-groups --- -### 사용자 그룹 상세 보기 +### 이벤트 목록 조회 ```http -GET /v4.0/user-groups/{userGroupId} +GET /v4.0/events ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|--------------| -| RDSforMySQL:UserGroup.Get | 사용자 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|----------|-----------------------------------------------------------------------------------------------------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
`ENTIRE`: 프로젝트 멤버 전체를 포함하는 사용자 그룹
`INDIVIDUAL_MEMBER`: 특정 프로젝트 멤버를 포함하는 사용자 그룹 | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

@@ -3917,16 +4516,12 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "userGroupTypeCode": "INDIVIDUAL_MEMBER", - "members": [ + "totalCounts": 1, + "events": [ { - "memberId": "1321e759-2ef3-4b85-9921-b13e918b24b5" + "eventYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + ] } ``` @@ -3935,87 +4530,99 @@ GET /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 생성하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v4.0/user-groups +GET /v4.0/event-subscriptions ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Create | 사용자 그룹 생성하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|-----------------------------------------------------------| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록
`selectAll`이 true인 경우 해당 필드 값은 무시됨 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |

예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } ] } ``` -```json -{ - "userGroupName": "dev-team", - "selectAll": true -} -``` -

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------------|------|------|-------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | - --- -### 사용자 그룹 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v4.0/user-groups/{userGroupId} +POST /v4.0/event-subscriptions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Modify | 사용자 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|----------------------------------------------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | -| userGroupName | Body | String | X | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5", - "f9064b09-2b15-442e-a4b0-3a5a2754555e" - ] + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ``` @@ -4024,7 +4631,9 @@ PUT /v4.0/user-groups/{userGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -4035,7 +4644,8 @@ PUT /v4.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -4044,76 +4654,121 @@ PUT /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 삭제하기 +### 이벤트 구독 삭제하기 ```http -DELETE /v4.0/user-groups/{userGroupId} +DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Delete | 사용자 그룹 삭제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v4.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 알림 그룹 +## 작업 정보 -### 알림 그룹 목록 보기 +### 작업 상태 -```http -GET /v4.0/notification-groups -``` +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | -#### 필요 권한 +### 작업 정보 상세 보기 -| 권한명 | 설명 | -|----------------------------------------------------|-------------| -| RDSforMySQL:NotificationGroup.List | 알림 그룹 목록 보기 | +```http +GET /v4.0/jobs/{jobId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------------|------|----------|-----------------------------------| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4125,17 +4780,15 @@ GET /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ { - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "resourceId": "resourceId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4144,43 +4797,32 @@ GET /v4.0/notification-groups --- -### 알림 그룹 상세 보기 +## 파라미터 그룹 + +### 파라미터 그룹 목록 보기 ```http -GET /v4.0/notification-groups/{notificationGroupId} +GET /v4.0/parameter-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|-------------| -| RDSforMySQL:NotificationGroup.Get | 알림 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------------|------|----------|-----------------------------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 파라미터 그룹 수 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4192,25 +4834,12 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "dbInstances": [ - { - "dbInstanceId": "ed5cb985-526f-4c54-9ae0-40288593de65", - "dbInstanceName": "database" - } - ], - "userGroups": [ + "totalCounts": 1, + "parameterGroups": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + ] } ``` @@ -4219,43 +4848,28 @@ GET /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v4.0/notification-groups +POST /v4.0/parameter-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Create | 알림 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------------| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "notificationGroupName": "dev-team-noti", - "notifyEmail": false, - "isEnable": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65" - ], - "userGroupIds": [ - "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0" - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -4264,55 +4878,84 @@ POST /v4.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|------|------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "parameterGroupId": "parameterGroupId-example" +} +``` + +

+
--- -### 알림 그룹 수정하기 +### 파라미터 그룹 삭제하기 ```http -PUT /v4.0/notification-groups/{notificationGroupId} +DELETE /v4.0/parameter-groups/{parameterGroupId} ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Modify | 알림 그룹 수정하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부 | -| notifySms | Body | Boolean | X | SMS 알림 여부 | -| isEnabled | Body | Boolean | X | 활성화 여부 | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +#### 응답 -
예시 -

+이 API는 응답 본문을 반환하지 않습니다. -```json -{ - "notifyEmail": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65", - "d51b7da0-682f-47ff-b588-b739f6adc740" - ] -} +--- + +### 파라미터 그룹 상세 보기 + +```http +GET /v4.0/parameter-groups/{parameterGroupId} ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4323,7 +4966,19 @@ PUT /v4.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ + { + "applyType": "BOTH" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4332,73 +4987,71 @@ PUT /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 수정하기 ```http -DELETE /v4.0/notification-groups/{notificationGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Delete | 알림 그룹 삭제하기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 모니터링 +이 API는 응답 본문을 반환하지 않습니다. -### Metric 목록 보기 +--- + +### 파라미터 그룹 복사하기 ```http -GET /v4.0/metrics +POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Metric.List | 통계 정보 조회 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|--------|-----------| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | Enum | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -4410,12 +5063,7 @@ GET /v4.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "measureName": "CPU_USAGE", - "unit": "%" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4424,62 +5072,29 @@ GET /v4.0/metrics --- -### 통계 정보 조회 +### 파라미터 수정하기 ```http -GET /v4.0/metric-statistics +PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Metric.List | 통계 정보 조회 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|----------|----|-----------------------------------| -| dbInstanceId | Query | UUID | O | DB 인스턴스의 식별자 | -| measureNames | Query | Array | O | 조회 지표 목록
- 최소 크기: `1` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| interval | Query | Number | X | 조회 간격 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|-----------|----------| -| metricStatistics | Body | Array | 통계 정보 목록 | -| metricStatistics.measureName | Body | Enum | 측정 항목 유형 | -| metricStatistics.unit | Body | String | 측정값 단위 | -| metricStatistics.values | Body | Array | 측정값 목록 | -| metricStatistics.values.timestamp | Body | Timestamp | 측정 시간 | -| metricStatistics.values.value | Body | Object | 측정값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "metricStatistics": [ + "modifiedParameters": [ { - "measureName": "MYSQL_STATUS", - "unit": "", - "values": [ - [ - 1679298540, - "1" - ], - [ - 1679298600, - "1" - ], - [ - 1679298660, - "1" - ] - ] + "value": "value-example" } ] } @@ -4488,64 +5103,53 @@ GET /v4.0/metric-statistics

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 +### 파라미터 그룹 재설정하기 -### 이벤트 카테고리 +```http +PUT /v4.0/parameter-groups/{parameterGroupId}/reset +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 이벤트 목록 조회 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -```http -GET /v4.0/events -``` +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 프로젝트 정보 -#### 필요 권한 +### 프로젝트 멤버 목록 보기 -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMySQL:Event.List | 이벤트 목록 보기 | +```http +GET /v4.0/project/members +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| eventCategoryType | Query | Enum | O | 조회할 이벤트 카테고리 유형
- `ALL`: 전체
- `INSTANCE`: DB 인스턴스
- `BACKUP`: 백업
- `DB_SECURITY_GROUP`: DB 보안 그룹
- `TENANT`: 테넌트 | -| sourceId | Query | String | X | 이벤트가 발생한 대상 리소스의 식별자 | -| keyword | Query | String | X | 이벤트 메시지에 포함된 문자열 검색어 | -| ascendingOrder | Query | Enum | X | 이벤트 메시지 정렬 순서
- `ASC`: 오름차순
- `DESC`: 내림차순
- 기본값: `DESC` | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|---------------------------------------| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메시지 목록 | -| events.messages.langCode | Body | String | 언어 코드 | -| events.messages.message | Body | String | 이벤트 메시지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -4557,32 +5161,9 @@ GET /v4.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 28, - "events": [ + "members": [ { - "eventCategoryType": "INSTANCE", - "eventCode": "INSTC_02_01", - "sourceId": "76f00947-356e-4a20-8922-428368cc45ed", - "sourceName": "db-instance", - "messages": [ - { - "langCode": "EN", - "message": "DB instance started" - }, - { - "langCode": "JA", - "message": "DBインスタンスの起動" - }, - { - "langCode": "KO", - "message": "DB 인스턴스 시작" - }, - { - "langCode": "ZH", - "message": "DB instance started" - } - ], - "eventYmdt": "2023-03-20T16:31:59+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -4593,29 +5174,23 @@ GET /v4.0/events --- -### 구독 가능한 이벤트 코드 목록 보기 +### 리전 목록 보기 ```http -GET /v4.0/event-codes +GET /v4.0/project/regions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMySQL:Event.List | 이벤트 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|-------|-------------| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

@@ -4627,10 +5202,9 @@ GET /v4.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "regions": [ { - "eventCode": "INSTC_05_01", - "eventCategoryType": "INSTANCE" + "isEnabled": false } ] } @@ -4640,3 +5214,4 @@ GET /v4.0/event-codes

--- + diff --git a/ko/api-guide-v4.0-ngsc.md b/ko/api-guide-v4.0-ngsc.md index 71b4f3d8..689bf9c4 100644 --- a/ko/api-guide-v4.0-ngsc.md +++ b/ko/api-guide-v4.0-ngsc.md @@ -1,35 +1,32 @@ ## Database > RDS for MySQL > API 가이드 -| 리전 | 엔드포인트 | -|-----------|-----------------------------------------------| -| 한국(판교) 리전 | https://kr4-rds-mysql-api.ngsc.go.kr | +## RDS for MySQL API 공통 정보 -## 인증 및 권한 +### 인증 및 권한 -API를 사용하려면 [Public API > API 호출 및 인증](/nhncloud/ko/public-api/api-authentication-ngsc/)을 통해 발급 받은 Bearer 유형의 토큰이 필요합니다. +RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. 발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|--------|--------|----|-------------------------------------------------------------| -| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | +| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. -또한 프로젝트 멤버 역할에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER`로 구분하여 권한을 부여할 수 있습니다. - -* `RDS for MySQL ADMIN` 권한은 모든 기능을 사용 가능합니다. -* `RDS for MySQL VIEWER` 권한은 정보를 조회하는 기능만 사용 가능합니다. +* `RDS for MySQL ADMIN` 역할은 API 실행에 필요한 모든 권한이 부여됩니다. +* `RDS for MySQL VIEWER` 역할은 정보를 조회하는 권한만 부여됩니다. * DB 인스턴스를 생성, 수정, 삭제하거나, DB 인스턴스를 대상으로 하는 어떠한 기능도 사용할 수 없습니다. - * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용 가능합니다. + * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용할 수 있습니다. API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같은 오류가 발생합니다. -| resultCode | resultMessage | 설명 | -|------------|---------------|-------------| -| 80401 | Unauthorized | 인증에 실패했습니다. | -| 80403 | Forbidden | 권한이 없습니다. | +| resultCode | resultMessage | 설명 | +|------------|---------------|-----| +| 80401 | Unauthorized | 인증에 실패했습니다. | +| 80403 | Forbidden | 권한이 없습니다. | -## 응답 공통 정보 +### 응답 공통 정보 모든 API 요청에 '200 OK'로 응답합니다. 자세한 응답 결과는 응답 본문의 헤더를 참고합니다. @@ -45,54 +42,67 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 ``` #### 필드 -| 이름 | 형식 | 설명 | -|---------------|---------|-----------------------------------------| -| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | -| resultMessage | String | 결과 메시지 | -| isSuccessful | Boolean | 성공 여부 | - - -## DB 엔진 유형 - -| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | -|--------------|----------|-----------------|--------| -| MYSQL\_V5633 | X | X | NATIVE | -| MYSQL\_V5715 | O | O | NATIVE | -| MYSQL\_V5719 | O | O | NATIVE | -| MYSQL\_V5726 | O | O | NATIVE | -| MYSQL\_V5731 | X | X | NATIVE | -| MYSQL\_V5733 | O | X | NATIVE, SHA256 | -| MYSQL\_V5737 | O | O | NATIVE, SHA256 | -| MYSQL\_V8018 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8023 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8028 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8032 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8033 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8034 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8405 | O | O | CACHING_SHA2 | +| 이름 | 형식 | 설명 | +|-----|-----|-----| +| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | +| resultMessage | String | 결과 메시지 | +| isSuccessful | Boolean | 성공 여부 | + +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(대구) 리전 | https://ngsc-kr4-rds-proxy.cloud.toastoven.net | + +### DB 엔진 유형 + +| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | +|------------|----------|------------------|------------| +| MYSQL_V5633 | X | X | NATIVE | +| MYSQL_V5715 | O | O | NATIVE | +| MYSQL_V5719 | O | O | NATIVE | +| MYSQL_V5726 | O | O | NATIVE | +| MYSQL_V5731 | X | X | NATIVE | +| MYSQL_V5733 | O | X | NATIVE, SHA256 | +| MYSQL_V5737 | O | O | NATIVE, SHA256 | +| MYSQL_V8018 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8023 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8028 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8032 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8033 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8034 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8405 | O | O | CACHING_SHA2 | +| MYSQL_V8406 | O | O | CACHING_SHA2 | +| MYSQL_V8407 | O | O | CACHING_SHA2 | +| MYSQL_V8408 | O | O | CACHING_SHA2 | * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## 프로젝트 정보 +## DB 보안 그룹 -### 리전 목록 보기 +### DB 보안 그룹 진행 상태 -```http -GET /v4.0/project/regions -``` +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | -#### 필요 권한 +### DB 보안 그룹 목록 보기 -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMySQL:Project.Get | 프로젝트 정보 조회 | +```http +GET /v4.0/db-security-groups +``` #### 요청 @@ -100,11 +110,16 @@ GET /v4.0/project/regions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------|------|---------|----------------------------------------------------------------------------| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -116,69 +131,52 @@ GET /v4.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ - { - "regionCode": "KR1", - "isEnabled": true - }, - { - "regionCode": "KR2", - "isEnabled": true - }, + "totalCounts": 1, + "dbSecurityGroups": [ { - "regionCode": "JP1", - "isEnabled": true + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } ``` +

--- -### 프로젝트 멤버 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v4.0/project/members +POST /v4.0/db-security-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMySQL:Project.Get | 프로젝트 정보 조회 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|--------|-----------------| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ { - "memberId": "1b1d3627-507a-49ea-8cb7-c86dfa9caa58", - "memberName": "홍길동", - "emailAddress": "gildong.hong@nhn.com", - "phoneNumber": "+821012345678" + "description": "description-example" } ] } @@ -187,35 +185,11 @@ GET /v4.0/project/members

---- - -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 - -```http -GET /v4.0/db-flavors -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|------------------| -| RDSforMySQL:DbFlavor.List | DB 인스턴스 사양 목록 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -227,14 +201,7 @@ GET /v4.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbFlavorName": "m2.c1m2", - "ram": 2048, - "vcpus": 1 - } - ] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -243,34 +210,62 @@ GET /v4.0/db-flavors --- -## 네트워크 - -### 서브넷 목록 보기 +### DB 보안 그룹 삭제하기 ```http -GET /v4.0/network/subnets +DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 상세 보기 -| 권한명 | 설명 | -|------------------------------------------|-----------| -| RDSforMySQL:Network.List | 서브넷 목록 보기 | +```http +GET /v4.0/db-security-groups/{dbSecurityGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|---------|------------------| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | UUID | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| rules | Body | Array | DB 보안 그룹 규칙 목록 | +| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | 포트 객체 | +| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | 최소 포트 범위 | +| rules.port.maxPort | Body | Number | 최대 포트 범위 | +| rules.cidr | Body | String | CIDR | +| rules.createdYmdt | Body | DateTime | 생성 일시 | +| rules.updatedYmdt | Body | DateTime | 수정 일시 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -282,15 +277,17 @@ GET /v4.0/network/subnets "resultMessage": "SUCCESS", "isSuccessful": true }, - "subnets": [ + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ { - "subnetId": "1b2a9b23-0725-4b92-8c78-35db66b8ad9f", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/24", - "usingGateway": true, - "availableIpCount": 240 + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -299,81 +296,59 @@ GET /v4.0/network/subnets --- -## DB 엔진 - -### DB 엔진 목록 보기 +### DB 보안 그룹 수정하기 ```http -GET /v4.0/db-versions +PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|-------------| -| RDSforMySQL:DbVersion.List | DB 엔진 목록 보기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|---------|-----------------------| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "dbVersions": [ - { - "dbVersion": "MYSQL_V8028", - "dbVersionName": "MySQL 8.0.28", - "restorableFromObs": true - } - ] + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 데이터 스토리지 +이 API는 응답 본문을 반환하지 않습니다. + +--- -### 데이터 스토리지 타입 목록 보기 +### DB 보안 그룹 규칙 삭제하기 ```http -GET /v4.0/storage-types +DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------|-------------------| -| RDSforMySQL:Storage.List | 데이터 스토리지 타입 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|-------|----------------| -| storageTypes | Body | Array | 데이터 스토리지 타입 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -385,10 +360,7 @@ GET /v4.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [ - "General SSD", - "General HDD" - ] + "jobId": "jobId-example" } ``` @@ -397,56 +369,51 @@ GET /v4.0/storage-types --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### DB 보안 그룹 규칙 생성하기 ```http -GET /v4.0/jobs/{jobId} +POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------|-------------| -| RDSforMySQL:Job.Get | 작업 정보 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------|-----|------|----|---------| -| jobId | URL | UUID | O | 작업의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------|------|----------|-----------------------------------| -| jobId | Body | UUID | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태 | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | Enum | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | UUID | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -458,16 +425,7 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "0ddb042c-5af6-43fb-a914-f4dd0540eb7c", - "jobStatus": "RUNNING", - "resourceRelations": [ - { - "resourceType": "DB_INSTANCE", - "resourceId": "56b39dcf-65eb-47ec-9d4f-09f160ba2266" - } - ], - "createdYmdt": "2023-02-22T20:47:12+09:00", - "updatedYmdt": "2023-02-22T20:49:46+09:00" + "jobId": "jobId-example" } ``` @@ -476,33 +434,52 @@ GET /v4.0/jobs/{jobId} --- -## DB 인스턴스 그룹 - -### DB 인스턴스 그룹 목록 보기 +### DB 보안 그룹 규칙 수정하기 ```http -GET /v4.0/db-instance-groups +PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` -#### 필요 권한 +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | -| 권한명 | 설명 | -|--------------------------------------------------|------------------| -| RDSforMySQL:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | +

예시 +

-#### 요청 +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` -이 API는 요청 본문을 요구하지 않습니다. +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------|------|----------|--------------------------------------------------------------------------| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -514,14 +491,7 @@ GET /v4.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ - { - "dbInstanceGroupId": "05de0746-89fd-49c8-94f9-9c5b1df97009", - "replicationType": "STANDALONE", - "createdYmdt": "2023-02-13T17:35:20+09:00", - "updatedYmdt": "2023-02-13T17:35:20+09:00" - } - ] + "jobId": "jobId-example" } ``` @@ -530,38 +500,26 @@ GET /v4.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v4.0/db-instance-groups/{dbInstanceGroupId} +GET /v4.0/db-versions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|------------------| -| RDSforMySQL:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|-----------------| -| dbInstanceGroupId | URL | UUID | O | DB 인스턴스 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |

예시

@@ -573,17 +531,11 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "36617a8e-0df8-4b16-b6ea-6306019e95da", - "replicationType": "STANDALONE", - "dbInstances": [ + "dbVersions": [ { - "dbInstanceId": "6d2db0ef-fe9b-4ed4-97b1-d97fcb4cf1b8", - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE" + "restorableFromObs": false } - ], - "createdYmdt": "2023-03-03T17:38:14+09:00", - "updatedYmdt": "2023-03-03T17:38:14+09:00" + ] } ``` @@ -616,8 +568,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `BACKING_UP` | 백업 중 | | `CANCELING` | 취소 중 | | `CREATING` | 생성 중 | -| `CREATING_SCHEMA` | DB 스키마 생성 중 | -| `CREATING_USER` | 사용자 생성 중 | +| `CREATING_SCHEMA` | DB 스키마 생성 중 | +| `CREATING_USER` | 사용자 생성 중 | | `DELETING` | 삭제 중 | | `DELETING_SCHEMA` | DB 스키마 삭제 중 | | `DELETING_USER` | 사용자 삭제 중 | @@ -636,8 +588,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `STARTING` | 시작 중 | | `STOPPING` | 정지 중 | | `SYNCING_SCHEMA` | DB 스키마 동기화 중 | -| `SYNCING_USER` | 사용자 동기화 중 | -| `UPDATING_USER` | 사용자 수정 중 | +| `SYNCING_USER` | 사용자 동기화 중 | +| `UPDATING_USER` | 사용자 수정 중 | ### DB 인스턴스 목록 보기 @@ -645,32 +597,26 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|---------------| -| RDSforMySQL:DbInstance.List | DB 인스턴스 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | -| dbInstances.dbPort | Body | Number | DB 포트 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태 | -| dbInstances.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstances.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstances | Body | Array | DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | +| dbInstances.dbPort | Body | Number | DB 포트 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbInstances.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstances.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -684,17 +630,7 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "createdYmdt": "2023-01-23T12:03:13+09:00", - "updatedYmdt": "2023-02-02T17:20:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -705,51 +641,123 @@ GET /v4.0/db-instances --- -### DB 인스턴스 상세 보기 +### DB 인스턴스 생성하기 ```http -GET /v4.0/db-instances/{dbInstanceId} +POST /v4.0/db-instances ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| authenticationPlugin | Body | Enum | X | 인증 Plugin
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | TLS Option
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE", + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| dbPort | Body | Number | DB 포트 | -| dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| progressStatus | Body | Enum | DB 인스턴스의 현재 작업 진행 상태 | -| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | -| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | -| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | -| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | -| supportAuthenticationPlugin | Body | Boolean | 인증 플러그인 지원 여부 | -| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | -| needMigration | Body | Boolean | 마이그레이션 필요 여부 | -| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -761,27 +769,7 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "dbFlavorId": "e9ed4ef6-78d7-46fa-ace9-32481e97f3b7", - "parameterGroupId": "b03e8b13-de27-4d04-a488-ff5689589372", - "dbSecurityGroupIds": ["01908c35-d2c9-4852-baf0-17f06ec42c03"], - "notificationGroupIds": ["83a62a33-ddbf-4a04-8653-e54463d5b1ac"], - "useDeletionProtection": false, - "useSlowQueryAnalysis": true, - "supportAuthenticationPlugin": true, - "needToApplyParameterGroup": false, - "needMigration": false, - "supportDbVersionUpgrade": true, - "createdYmdt": "2022-11-23T12:03:13+09:00", - "updatedYmdt": "2022-12-02T17:20:17+09:00" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -790,96 +778,167 @@ GET /v4.0/db-instances/{dbInstanceId} --- -### DB 인스턴스 생성하기 +### 오브젝트 스토리지를 이용한 DB 인스턴스 복원 ```http -POST /v4.0/db-instances +POST /v4.0/db-instances/restore-from-obs ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Create | DB 인스턴스 생성하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|-------|---------|----|---------------------------------------------------------------------| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbUserName | Body | String | O | DB 사용자 계정명 | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | +| restore.username | Body | String | O | NHN Cloud 계정 혹은 IAM 멤버 ID | +| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | +| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | +| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "dbVersion": "ENUM_VALUE", + "useHighAvailability": false, + "pingInterval": 3, "storage": { - "storageType": "General SSD", - "storageSize": 20 + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" }, "backup": { - "backupPeriod": 1, + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": true, "backupSchedules": [ { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR" + "backupWndDuration": "HALF_AN_HOUR" } ] - } + }, + "restore": { + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" + }, + "useDefaultNotification": false, + "useSlowQueryAnalysis": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 인스턴스 삭제하기 + +```http +DELETE /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| deleteAutoBackup | Body | Boolean | X | 자동 백업 삭제 여부
- 기본값: `false` | + +
예시 +

+ +```json +{ + "deleteAutoBackup": false } ``` @@ -888,10 +947,106 @@ POST /v4.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 인스턴스 상세 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| dbPort | Body | Number | DB 포트 | +| dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | +| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | +| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | +| supportAuthenticationPlugin | Body | Boolean | 인증 plugin 지원 여부 | +| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | +| needMigration | Body | Boolean | 마이그레이션 필요 여부 | +| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "dbFlavorId": "dbFlavorId-example", + "parameterGroupId": "parameterGroupId-example", + "dbSecurityGroupIds": [], + "notificationGroupIds": [], + "useDeletionProtection": false, + "useSlowQueryAnalysis": false, + "supportAuthenticationPlugin": false, + "needToApplyParameterGroup": false, + "needMigration": false, + "supportDbVersionUpgrade": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ --- ### DB 인스턴스 수정하기 @@ -900,40 +1055,599 @@ POST /v4.0/db-instances PUT /v4.0/db-instances/{dbInstanceId} ``` -#### 필요 권한 +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbVersion | Body | Enum | X | DB 엔진 버전 코드 | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | +| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
- 기본값: `false` | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbPort": 1, + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "useSlowQueryAnalysis": false, + "useDummy": false, + "dbSecurityGroupIds": [], + "executeBackup": false, + "useOnlineFailover": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 백업 정보 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backupPeriod | Body | Number | 백업 보관 기간(일) | +| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | +| backupRetryCount | Body | Number | 백업 재시도 횟수 | +| replicationRegion | Body | Enum | 백업 복제 리전
- KR4: `한국(대구)` | +| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration
- HALF_AN_HOUR
- ONE_HOUR
- ONE_HOUR_AND_HALF
- TWO_HOURS
- TWO_HOURS_AND_HALF
- THREE_HOURS | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "backupPeriod": 1, + "ftwrlWaitTimeout": 1, + "backupRetryCount": 1, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +--- + +### 백업 정보 수정하기 + +```http +PUT /v4.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +
예시 +

+ +```json +{ + "backupPeriod": 0, + "ftwrlWaitTimeout": 0, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 바이너리 로그 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/binlogs +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| binLogs | Body | Array | BinLog 파일 목록 | +| binLogs.binLogFileName | Body | String | BinLog 파일 이름 | +| binLogs.binLogFileSize | Body | Number | BinLog 파일 크기 (Byte) | +| binLogs.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

-| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "binLogs": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### 바이너리 로그 삭제 + +```http +POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| lastBinLogFileName | Body | String | O | 삭제할 마지막 BinLog 파일 이름 (해당 파일 직전까지 삭제됨) | + +
예시 +

+ +```json +{ + "lastBinLogFileName": "mysql-bin.000010" +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 인증서 파일 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/certificates +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| certificates | Body | Array | 인증서 파일 목록 | +| certificates.fileName | Body | String | 인증서 파일 이름 | +| certificates.certificateType | Body | Enum | 인증서 타입
- CA_FILE
- CERT_FILE
- KEY_FILE | +| certificates.fileSize | Body | Number | 인증서 파일 크기(Byte) | +| certificates.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "certificates": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### 인증서 파일 내보내기 + +```http +POST /v4.0/db-instances/{dbInstanceId}/certificates/upload +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| certificateTypes | Body | Array | O | 업로드할 인증서 타입 목록 | +| tenantId | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 인증서 파일의 경로 | + +
예시 +

+ +```json +{ + "certificateTypes": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 스키마 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSchemas | Body | Array | DB 스키마 목록 | +| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | +| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | +| dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbSchemas": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### DB 스키마 생성하기 + +```http +POST /v4.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaName | Body | String | O | DB 스키마 이름
- 최대 길이: `64`
- 영문 시작, 영문/숫자/_ 허용, 1~64자, MySQL 예약어 불가 | + +
예시 +

+ +```json +{ + "dbSchemaName": "dbSchemaName-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 스키마 삭제하기 + +```http +DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 사용자 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/db-users +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbUsers | Body | Array | DB 사용자 목록 | +| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | +| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | +| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- STABLE
- CREATING
- UPDATING
- SYNCING
- DELETING
- DELETED | +| dbUsers.createdYmdt | Body | DateTime | 생성 일시 | +| dbUsers.updatedYmdt | Body | DateTime | 수정 일시 | +| dbUsers.authenticationPlugin | Body | Enum | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| dbUsers.tlsOption | Body | Enum | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbUsers": [ + { + "tlsOption": "NONE" + } + ] +} +``` + +

+
+ +--- + +### DB 사용자 생성하기 + +```http +POST /v4.0/db-instances/{dbInstanceId}/db-users +``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|---------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbPort | Body | Number | X | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbVersion | Body | Enum | X | DB 엔진 유형 | -| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| host | Body | String | O | DB 사용자 계정의 호스트명
- 최대 길이: `45` | +| authorityType | Body | Enum | O | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |
예시

```json { - "dbInstanceName": "db-instance2", - "description": "description2", - "dbPort": 10001, - "dbSecurityGroupIds": [], - "executeBackup": true + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "host": "host-example", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" } ``` @@ -942,228 +1656,249 @@ PUT /v4.0/db-instances/{dbInstanceId} #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 삭제하기 +### DB 사용자 삭제하기 ```http -DELETE /v4.0/db-instances/{dbInstanceId} +DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Delete | DB 인스턴스 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 재시작하기 +### DB 사용자 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/restart +PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Restart | DB 인스턴스 재시작하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | +| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| authorityType | Body | Enum | X | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | -#### 요청 +
예시 +

+ +```json +{ + "dbPassword": "dbPassword", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- -### DB 인스턴스 강제 재시작하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/force-restart +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|------------------| -| RDSforMySQL:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | +

+
-#### 요청 +--- -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +### DB 인스턴스 삭제 보호 설정 변경 +```http +PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection +``` -#### 응답 +#### 요청 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "useDeletionProtection": false } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 시작하기 +### DB 인스턴스 강제 재시작하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/start +POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Start | DB 인스턴스 시작하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 정지하기 +### 고가용성 정보 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/stop +GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Stop | DB 인스턴스 정지하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| useHighAvailability | Body | Boolean | 고가용성 사용 여부
- 기본값: `false` | +| haStatus | Body | Enum | 고가용성 상태
- CREATED: `생성됨`
- STABLE: `정상`
- PAUSING: `일시 중지 중`
- DISABLE: `정지`
- DISABLE_MASTER_IN_REPLICATION: `마스터 비정상 복제 감지로 인한 고가용성 중단`
- DISABLE_MHA_PROCESS: `고가용성 프로세스 중단`
- DISABLE_REPLICATION_STOP: `복제 중단으로 인한 고가용성 중단`
- DISABLE_REPLICATION_DELAY: `복제 지연으로 인한 고가용성 중단`
- FAILOVER_STARTED: `장애 조치 시작`
- FAILOVER_FAILED: `장애 조치 실패`
- FAILOVER_COMPLETED: `장애 조치 완료`
- DELETED: `삭제됨`
- PAUSED: `일시 중지`
- PAUSED_DUE_TO_TASK: `작업으로 인한 일시 중지`
- MASTER_FAILURE_DETECTION: `마스터 장애 감지` | +| pingInterval | Body | Number | Ping 간격(초) | +| pingType | Body | String | Ping 방식 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "useHighAvailability": false, + "haStatus": "CREATED", + "pingInterval": 1, + "pingType": "pingType-example" +} +``` + +

+
--- -### DB 인스턴스 복제하기 +### 고가용성 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/replicate +PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Replicate | DB 인스턴스 복제하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -#### 요청 +#### 고가용성 사용 시 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록
- 기본값: 원본 DB 인스턴스 값 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: 원본 DB 인스턴스 값 | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄)
- 기본값: 원본 DB 인스턴스 값 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00`
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간
- 기본값: 원본 DB 인스턴스 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` |
예시

```json { - "dbInstanceName": "db-instance-replicate", - "description": "description", - "dbPort": 11000, - "network": { - "availabilityZone": "kr-pub-a" - }, - "storage": { - "stroageSize": 100 - } + "useHighAvailability": false, + "pingInterval": 1 } ``` @@ -1172,147 +1907,138 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 승격하기 +### 고가용성 일시 중지하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/promote +POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Promote | DB 인스턴스 승격하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 재구축하기 +### 고가용성 복구하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/rebuild +POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Rebuild | DB 인스턴스 재구축하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 복원 정보 조회 +### 고가용성 다시 시작하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info +POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | -| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | -| restorableBackups | Body | Array | 복원 가능한 백업 목록 | -| restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | -| restorableBackups.backup.backupName | Body | String | 백업 이름 | -| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | -| restorableBackups.backup.backupType | Body | Enum | 백업 유형
  • `AUTO`: 자동
  • `MANUAL`: 수동
| -| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
  • `BACKING_UP`: 백업 중인 경우
  • `COMPLETED`: 백업이 완료된 경우
  • `DELETING`: 백업이 삭제 중인 경우
  • `DELETED`: 백업이 삭제된 경우
  • `ERROR`: 오류가 발생한 경우
| -| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| restorableBackups.backup.dbVersion | Body | String | DB 엔진 유형 | -| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | -| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | -| restorableBackups.backup.binLogPosition | Body | Number | 바이너리 로그 파일 위치 | -| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | -| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | -| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "oldestRestorableYmdt": "2023-07-09T16:33:33+09:00", - "latestRestorableYmdt": "2023-07-10T15:44:44+09:00", - "restorableBackups": [ - { - "backup": { - "backupId": "145d889a-fe08-474f-8f58-bde576ff96a9", - "backupName": "example-backup-name", - "backupStatus": "COMPLETED", - "dbInstanceId": "dba1be25-9429-4589-9716-7fb6daad7cb9", - "dbInstanceName": "original-db-instance-name", - "dbVersion": "MYSQL_V8028", - "backupType": "MANUAL", - "backupSize": 8299904, - "useBackupLock": true, - "failoverCount": 0, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 367916037, - "createdYmdt": "2023-07-10T15:44:44+09:00", - "updatedYmdt": "2023-07-10T15:46:07+09:00" - }, - "restorableBinLogs": [ - "mysql-bin.000001" - ] - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1321,45 +2047,25 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info --- -### 복원될 마지막 쿼리 조회 +### 고가용성 분리하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query +POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|------|----|-----------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restoreType | Query | Enum | O | 복원 타입 종류

  • `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
  • `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
| - -#### restoreType이 `TIMESTAMP`인 경우 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-------|----------|----|-------------------------------------------| -| restoreYmdt | Query | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +#### 요청 -#### restoreType이 `BINLOG`인 경우 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------|-------|--------|----|--------------------| -| backupId | Query | UUID | O | 복원에 사용할 백업의 식별자 | -| binLogFileName | Query | String | O | 복원에 사용할 바이너리 로그 이름 | -| binLogPosition | Query | Number | O | 복원에 사용할 바이너리 로그 위치 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|----------|--------------------------------------| -| executedYmdt | Body | DateTime | 쿼리 수행 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| lastQuery | Body | String | 마지막 수행 쿼리 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -1371,8 +2077,7 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query "resultMessage": "SUCCESS", "isSuccessful": true }, - "executedYmdt": "2023-03-17T14:02:29+09:00", - "lastQuery": "INSERT INTO `test`.`test`SET @1='0123'" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1381,366 +2086,189 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query --- -### 복원 +### 로그 파일 목록 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/restore +GET /v4.0/db-instances/{dbInstanceId}/log-files ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Restore | DB 인스턴스 복원하기 | - -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restore | Body | Object | O | 복원 정보 객체 | -| restore.restoreType | Body | Enum | O | 복원 타입 종류

  • `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
  • `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
  • `BACKUP`: 기존에 생성한 백업을 이용한 스냅숏 복원 타입
| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
  • 최솟값: `3306`
  • 최댓값: `43306`
| -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
  • 기본값: `false`
| -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
  • 기본값: `3`
  • 최솟값: `1`
  • 최댓값: `600`
| -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
  • 기본값: `false`
| -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
  • 기본값: `false`
| -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
  • 예시: `kr-pub-a`
| -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
  • 최솟값: `20`
  • 최댓값: `2048`
| -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
  • 최솟값: `0`
  • 최댓값: `730`
| -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
  • 기본값: `1800`
  • 최솟값: `0`
  • 최댓값: `21600`
| -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
  • 기본값: `0`
  • 최솟값: `0`
  • 최댓값: `10`
| -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
  • `KR1`: 한국(판교)
  • `KR2`: 한국(평촌)
  • `JP1`: 일본(도쿄)
| -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
  • 기본값: `true`
| -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
  • 예시: `00:00:00`
| -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
  • `HALF_AN_HOUR`: 30분
  • `ONE_HOUR`: 1시간
  • `ONE_HOUR_AND_HALF`: 1시간 30분
  • `TWO_HOURS`: 2시간
  • `TWO_HOURS_AND_HALF`: 2시간 30분
  • `THREE_HOURS`: 3시간
| +이 API는 요청 본문을 요구하지 않습니다. -#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|----------|----|------------------------------------------------------------------------------------------------| -| restore.restoreYmdt | Body | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD)
복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능하다. | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| logFiles | Body | Array | 로그 파일 목록 | +| logFiles.logFileName | Body | String | 로그 파일 이름 | +| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- ERROR
- BINLOG
- GENERAL
- SLOW_QUERY
- AUDIT
- BACKUP | +| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | +| logFiles.createdYmdt | Body | DateTime | 생성 일시 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "TIMESTAMP", - "restoreYmdt": "2023-07-10T15:44:44+09:00" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "logFiles": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) +--- + +### 로그 파일 내보내기 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------------|------|--------|----|--------------------| -| restore.backupId | Body | UUID | O | 복원에 사용할 백업의 식별자 | -| restore.binLog | Body | Object | O | 바이너리 로그 정보 객체 | -| restore.binLog.binLogFileName | Body | String | O | 복원에 사용할 바이너리 로그 이름 | -| restore.binLog.binLogPosition | Body | Number | O | 복원에 사용할 바이너리 로그 위치 | +```http +POST /v4.0/db-instances/{dbInstanceId}/log-files/export +``` -* 바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. +#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| logFileNames | Body | Array | O | 로그 파일 이름 목록 | +| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BINLOG", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36", - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 1234567 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "logFileNames": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

-
- -#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|------|------------------------------|-----------------| -| restore.backupId | Body | UUID | O(restoreType이 `BACKUP`인 경우) | 복원에 사용할 백업의 식별자 | +
+#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BACKUP", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - - --- -### 오브젝트 스토리지로부터 복원 +### 로그 파일 내용 보기 ```http -POST /v4.0/db-instances/restore-from-obs +GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------------|-------------------------| -| RDSforMySQL:DbInstance.RestoreFromObs | DB 인스턴스 오브젝트 스토리지로부터 복원 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|----------------------------------------------------------------------------------------| -| restore | Body | Object | O | 복원 정보 객체 | -| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | -| restore.username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | -| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | -| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
  • 최솟값: `3306`
  • 최댓값: `43306`
| -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
  • 기본값: `false`
| -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
  • 기본값: `3`
  • 최솟값: `1`
  • 최댓값: `600`
| -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
  • 기본값: `false`
| -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
  • 기본값: `false`
| -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
  • 예시: `kr-pub-a`
| -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
  • 최솟값: `20`
  • 최댓값: `2048`
| -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
  • 최솟값: `0`
  • 최댓값: `730`
| -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
  • 기본값: `1800`
  • 최솟값: `0`
  • 최댓값: `21600`
| -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
  • 기본값: `0`
  • 최솟값: `0`
  • 최댓값: `10`
| -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
  • `KR1`: 한국(판교)
  • `KR2`: 한국(평촌)
  • `JP1`: 일본(도쿄)
| -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
  • 기본값: `true`
| -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
  • 예시: `00:00:00`
| -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
  • `HALF_AN_HOUR`: 30분
  • `ONE_HOUR`: 1시간
  • `ONE_HOUR_AND_HALF`: 1시간 30분
  • `TWO_HOURS`: 2시간
  • `TWO_HOURS_AND_HALF`: 2시간 30분
  • `THREE_HOURS`: 3시간
| +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| logFileName | URL | UUID | O | 로그 파일 이름 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| content | Body | String | 로그 파일 내용 (최대 65533 bytes) |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbVersion": "MYSQL_V8028", - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "tenantId":"tenant-id", - "username":"username", - "password":"password", - "targetContainer":"targetContainer", - "objectPath":"objectPath" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "content": "content-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - - --- - -### DB 인스턴스 삭제 보호 설정 변경하기 +### DB 인스턴스 유지 관리 목록 보기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection +GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| type | Query | String | X | | +| statuses | Query | String | X | | +| category | Query | String | X | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 유지 관리 목록 갯수 | +| maintenances | Body | Array | 유지 관리 목록 | +| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| maintenances.description | Body | String | 유지 관리 설명 | +| maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| maintenances.payload | Body | Object | 유지 관리 타입에 따른 Payload | +| maintenances.required | Body | Boolean | 유지 관리 필수 여부 | +| maintenances.deadlineYmdt | Body | DateTime | 유지 관리 강제 적용 일시 | +| maintenances.status | Body | Enum | 유지 관리 상태
- PENDING: `대기`
- READY: `준비`
- RUNNING: `실행 중`
- COMPLETED: `완료`
- FAILED: `실패`
- EXCLUDED: `제외`
- DELETED: `삭제`
- UNKNOWN | +| maintenances.executionType | Body | Enum | 유지 관리 실행 타입
- SCHEDULED: `예약 실행 (유지 관리 기간 자동 실행)`
- MANUAL: `수동 실행 (즉시 실행)`
- FORCED: `강제 실행 (데드라인 초과 자동 실행)` | +| maintenances.addedYmdt | Body | DateTime | 유지 관리 스케줄 등록 일시 | +| maintenances.executionStartedYmdt | Body | DateTime | 유지 관리 시작 일시 | +| maintenances.executionCompletedYmdt | Body | DateTime | 유지 관리 종료 일시 |
예시

@@ -1751,7 +2279,13 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "totalCounts": 1, + "maintenances": [ + { + "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -1760,178 +2294,250 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection --- -### 고가용성 수정하기 +### DB 인스턴스 유지 관리 즉시 실행하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/high-availability +POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Modify | 고가용성 수정하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload | -#### 요청 +

예시 +

+ +```json +{ + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|---------|----|------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 고가용성 다시 시작하기 +### DB 인스턴스 유지 관리 예약하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume +POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------------|--------------| -| RDSforMySQL:HighAvailability.Resume | 고가용성 다시 시작하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 고가용성 일시 중지하기 +### DB 인스턴스 유지 관리 삭제하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause +DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|--------------| -| RDSforMySQL:HighAvailability.Pause | 고가용성 일시 중지하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| maintenanceId | URL | UUID | O | 유지 관리 아이디 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 고가용성 복구하기 +### 네트워크 정보 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair +GET /v4.0/db-instances/{dbInstanceId}/network-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Repair | 고가용성 복구하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | +| subnet | Body | Object | 서브넷 객체 | +| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnet.subnetCidr | Body | String | 서브넷의 CIDR | +| endPoints | Body | Array | 접속 정보 목록 | +| endPoints.domain | Body | String | 도메인 | +| endPoints.ipAddress | Body | String | IP 주소 | +| endPoints.endPointType | Body | String | 접속 정보 타입 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "availabilityZone": "availabilityZone-example", + "subnet": { + "subnetId": "subnetId-example", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example" + }, + "endPoints": [ + { + "endPointType": "endPointType-example" + } + ] +} +``` + +

+
--- -### 고가용성 분리하기 +### 네트워크 정보 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/split +PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Split | 고가용성 분리하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "usePublicAccess": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 데이터 스토리지 정보 보기 +### DB 인스턴스 승격하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/storage-info +POST /v4.0/db-instances/{dbInstanceId}/promote ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|---------|--------------------------------------------------------------------------------------| -| storageType | Body | Enum | 데이터 스토리지 타입 | -| storageSize | Body | Number | 데이터 스토리지 크기(GB) | -| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- `DETACHED`: 부착되지 않음
- `ATTACHED`: 부착됨
- `DELETED`: 삭제됨 | -| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | -| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | -| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -1943,89 +2549,150 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "General SSD", - "storageSize": 20, - "storageStatus": "ATTACHED", - "storageAutoscale": { - "useStorageAutoscale": true, - "threshold": 80, - "maxStorageSize": 100, - "cooldownTime": 10 - } + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### 데이터 스토리지 정보 수정하기 +### DB 인스턴스 재구축하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/storage-info +POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: 현재값
- 최댓값: `2048` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 백업 정보 보기 +### DB 인스턴스 복제하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/backup-info +POST /v4.0/db-instances/{dbInstanceId}/replicate ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부 | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | X | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | X | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|---------|----------------| -| backupPeriod | Body | Number | 백업 보관 기간(일) | -| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | -| backupRetryCount | Body | Number | 백업 재시도 횟수 | -| replicationRegion | Body | Enum | 백업 복제 리전 | -| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | -| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2037,112 +2704,108 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "backupPeriod": 1, - "ftwrlWaitTimeout": 1800, - "backupRetryCount": 0, - "replicationRegion": null, - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### 백업 정보 수정하기 +### DB 인스턴스 재시작하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/backup-info +POST /v4.0/db-instances/{dbInstanceId}/restart ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | -#### 요청 +
예시 +

+ +```json +{ + "useOnlineFailover": false, + "executeBackup": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------------------------|------|---------|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "backupPeriod": 5, - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndBgnTime": "01:00:00", - "backupWndDuration": "TWO_HOURS" - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 네트워크 정보 보기 +### DB 인스턴스 복원 정보 조회 ```http -GET /v4.0/db-instances/{dbInstanceId}/network-info +GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------------------------------------------------------------------------------------------------------------------------------| -| availabilityZone | Body | Enum | DB 인스턴스를 생성할 가용성 영역 | -| subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | UUID | 서브넷의 식별자 | -| subnet.subnetName | Body | UUID | 서브넷을 식별할 수 있는 이름 | -| subnet.subnetCidr | Body | UUID | 서브넷의 CIDR | -| endPoints | Body | Array | 접속 정보 목록 | -| endPoints.domain | Body | String | 도메인 | -| endPoints.ipAddress | Body | String | IP 주소 | -| endPoints.endPointType | Body | Enum | 접속 정보 타입
-`EXTERNAL`: 외부 접속 도메인
-`INTERNAL`: 내부 접속 도메인
-`PUBLIC`: (Deprecated) 외부 접속 도메인
-`PRIVATE`: (Deprecated) 내부 접속 도메인 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | +| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | +| restorableBackups | Body | Array | 복원 가능한 백업 목록 | +| restorableBackups.backup | Body | Object | 백업 정보 객체 | +| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupName | Body | String | 백업 이름 | +| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | +| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | +| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | +| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | +| restorableBackups.backup.binLogPosition | Body | Object | 바이너리 로그 파일 위치 | +| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | +| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | +| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 |
예시

@@ -2154,17 +2817,11 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "kr-pub-a", - "subnet": { - "subnetId": "bd453789-34ae-416c-9f78-05b9e43a46be", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/16" - }, - "endPoints": [ + "oldestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "restorableBackups": [ { - "domain": "ea548a78-d85f-43b4-8ddf-c88d999b9905.internal.kr1.mysql.rds.nhncloudservice.com", - "ipAddress": "192.168.0.2", - "endPointType": "INTERNAL" + "restorableBinLogs": [] } ] } @@ -2175,67 +2832,26 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info --- -### 네트워크 정보 수정하기 - -```http -PUT /v4.0/db-instances/{dbInstanceId}/network-info -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 목록 보기 +### 복원될 마지막 쿼리 조회 ```http -GET /v4.0/db-instances/{dbInstanceId}/db-users +GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|---------------------| -| RDSforMySQL:DbInstanceUser.List | DB 인스턴스 내 사용자 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|-----------------------------------------------------------------------------------------------------------------------------| -| dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | -| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | -| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | -| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `UPDATING`: 수정 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbUsers.authenticationPlugin | Body | Enum | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| dbUsers.tlsOption | Body | Enum | TLS Option
- NONE
- SSL
- X509 | -| dbUsers.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbUsers.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| executedYmdt | Body | DateTime | 쿼리 수행 일시 | +| lastQuery | Body | String | 마지막 수행 쿼리 |

예시

@@ -2247,19 +2863,8 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbUsers": [ - { - "dbUserId": "4b3d530b-fd02-4d59-a620-83d019a67bbb", - "dbUserName": "db-user", - "host": "%", - "authorityType": "DDL", - "dbUserStatus": "STABLE", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE", - "createdYmdt": "2023-03-17T14:02:29+09:00", - "updatedYmdt": "2023-03-17T14:02:31+09:00" - } - ] + "executedYmdt": "2023-12-31T15:00:00+09:00", + "lastQuery": "lastQuery-example" } ``` @@ -2268,45 +2873,138 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users --- -### DB 사용자 생성하기 +### DB 인스턴스 복원 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-users +POST /v4.0/db-instances/{dbInstanceId}/restore ``` +#### 공통 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미입력 시 원본 인스턴스의 사양이 적용됩니다. | +| dbPort | Body | Number | X | DB 포트 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | X | 스토리지 정보 객체. 미입력 시 원본 인스턴스의 스토리지 설정이 적용됩니다. | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미입력 시 원본 인스턴스의 스토리지 타입이 적용됩니다. | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미입력 시 원본 인스턴스의 스토리지 크기가 적용됩니다.
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | X | 네트워크 정보 객체. 미입력 시 원본 인스턴스의 네트워크 설정이 적용됩니다. | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미입력 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미입력 시 랜덤 선택 | +| backup | Body | Object | X | 백업 정보 객체. 미입력 시 원본 인스턴스의 백업 설정이 적용됩니다. | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미입력 시 원본 인스턴스의 백업 보관 기간이 적용됩니다.
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미입력 시 원본 인스턴스의 백업 스케쥴이 적용됩니다. | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.restoreType | Body | Enum | O | 복원 타입
- TIMESTAMP: `복원 가능한 시간 이내의 시간을 이용한 시점 복원`
- BINLOG: `복원 가능한 바이너리 로그 위치를 이용한 시점 복원`
- BACKUP: `기존에 생성한 백업을 이용한 스냅숏 복원` | +| restore.binLog.binLogFileName | Body | String | X | 복원에 사용할 바이너리 로그 이름 | +| restore.binLog.binLogPosition | Body | Object | X | 복원에 사용할 바이너리 로그 위치 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미입력 시 원본 인스턴스의 파라미터 그룹이 적용됩니다. | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록. 미입력 시 원본 인스턴스의 보안 그룹이 적용됩니다. | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -#### 필요 권한 +#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Create | DB 인스턴스 내 사용자 생성하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.restoreYmdt | Body | DateTime | X | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -#### 요청 +복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|-------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserName | Body | String | O | DB 사용자 계정 이름
- 최소 길이: `1`
- 최대 길이: `32` | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| host | Body | String | O | DB 사용자 계정의 호스트명
- 예시: `1.1.1.%` | -| authorityType | Body | Enum | O | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | +#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | +| restore.binLog | Body | Object | X | 복원에 사용할 바이너리 로그 정보 객체 | + +바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. + +#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 설정할 수 있습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 |

예시

```json { - "dbUserName": "db-user", - "dbPassword": "password", - "host": "1.1.1.%", - "authorityType": "CRUD", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "useHighAvailability": false, + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "restoreType": "TIMESTAMP", + "binLog": { + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + } + } + }, + "useDefaultNotification": false, + "useSlowQueryAnalysis": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false } ``` @@ -2315,117 +3013,133 @@ POST /v4.0/db-instances/{dbInstanceId}/db-users #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 사용자 수정하기 +### DB 인스턴스 시작하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +POST /v4.0/db-instances/{dbInstanceId}/start ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Modify | DB 인스턴스 내 사용자 수정하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|-------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | -| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| authorityType | Body | Enum | X | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | +#### 응답 -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 수정할 수 있습니다. -> `authenticationPlugin`의 값은 `dbPassword`와 동시에 수정을 해야 합니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "authorityType": "DDL" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 삭제하기 +### DB 인스턴스 정지하기 ```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +POST /v4.0/db-instances/{dbInstanceId}/stop ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Delete | DB 인스턴스 내 사용자 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 스키마 목록 보기 +### 스토리지 정보 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/db-schemas +GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|---------------------| -| RDSforMySQL:DbInstanceSchema.List | DB 인스턴스 내 스키마 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|------------------------------------------------------------------------------------------------------| -| dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | -| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | -| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbSchemas.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageType | Body | String | 데이터 스토리지 타입 | +| storageSize | Body | Number | 데이터 스토리지 크기(GB) | +| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- DELETED: `삭제됨`
- PENDING_DELETION: `삭제 유예됨`
- DELETION_RESERVED: `삭제 예약됨 (스냅샷 정리 대기)`
- DETACHED: `해제됨`
- ATTACHED: `할당됨` | +| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | +| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | +| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | +| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) |
예시

@@ -2437,14 +3151,15 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSchemas": [ - { - "dbSchemaId": "7c9a94b8-86c1-435d-8af2-82a5e9d53fd4", - "dbSchemaName": "schema", - "dbSchemaStatus": "STABLE", - "createdYmdt": "2023-03-20T13:37:45+09:00" - } - ] + "storageType": "storageType-example", + "storageSize": 1, + "storageStatus": "DELETED", + "storageAutoscale": { + "useStorageAutoscale": false, + "threshold": 1, + "maxStorageSize": 1, + "cooldownTime": 1 + } } ``` @@ -2453,93 +3168,90 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas --- -### DB 스키마 생성하기 +### 스토리지 정보 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-schemas +PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceSchema.Create | DB 인스턴스 내 스키마 생성하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaName | Body | String | O | DB 스키마 이름 | +#### 공통 요청 -#### 응답 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최댓값: `2048` | +| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +#### 스토리지 자동 확장 사용 시 ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -### DB 스키마 삭제하기 +

예시 +

-```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +```json +{ + "storageSize": 1, + "storageAutoscale": { + "useStorageAutoscale": false + } +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceSchema.Delete | DB 인스턴스 내 스키마 삭제하기 | +

+
-#### 요청 +#### 응답 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | +
예시 +

-#### 응답 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 로그 파일 목록 보기 +## DB 인스턴스 그룹 + +### DB 인스턴스 그룹 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/log-files +GET /v4.0/db-instance-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|-----------------------| -| RDSforMySQL:DbInstanceLog.List | DB 인스턴스 내 로그 파일 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|-------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileTypes | Query | Array | X | 로그 파일 타입 종류 목록
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| logFiles | Body | Array | 로그 파일 목록 | -| logFiles.logFileName | Body | String | 로그 파일 이름 | -| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | -| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | -| logFiles.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2551,12 +3263,9 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files "resultMessage": "SUCCESS", "isSuccessful": true }, - "logFiles": [ + "dbInstanceGroups": [ { - "logFileName": "xtra_full.log-20230317", - "logFileType": "BACKUP", - "logFileSize": 4096, - "createdYmdt": "2023-03-17T14:02:29+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2567,107 +3276,81 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files --- -### 로그 파일 내보내기 +### DB 인스턴스 그룹 상세 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/log-files/export +GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. -| 권한명 | 설명 | -|--------------------------------------------------|----------------------| -| RDSforMySQL:DbInstanceLog.Export | DB 인스턴스 내 로그 파일 내보내기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|--------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileNames | Body | Array | O | 로그 파일 이름 목록
- 최소 크기: `1` | -| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "logFileNames": ["xtra_full.log-20230317"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "logs/backup" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +## DB 인스턴스 사양 -### 백업 목록 조회 +### DB 인스턴스 사양 목록 보기 ```http -GET /v4.0/backups +GET /v4.0/db-flavors ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Backup.List | 백업 목록 조회 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|--------|----|----------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| backupType | Query | Enum | X | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동
- 기본값: 전체 | -| dbInstanceId | Query | UUID | X | 원본 DB 인스턴스의 식별자 | -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|-----------------------------------| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | UUID | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태 | -| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형 | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -2679,308 +3362,183 @@ GET /v4.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "backups": [ + "dbFlavors": [ { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupSize": 4996786, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" + "vcpus": 1 } ] } ```

-
- ---- - -### 백업 생성하기 - -```http -POST /v4.0/backups -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Create | 백업 생성하기 | - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|--------|----|------------------------------------------------------------| -| backupName | Body | String | O | 백업을 식별할 수 있는 이름 | -| backupMethodType | Body | Enum | O | 백업 방식 타입 종류
- `FULL`: 전체 백업
- `INCREMENTAL`: 증분 백업 | - -#### 전체 백업(backupMethodType이 `FULL`인 경우) +
-| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|--------------| -| dbInstanceId | Body | UUID | O | DB 인스턴스의 식별자 | +--- +## 가용성 영역 -
예시 -

+### 가용성 영역 목록 보기 -```json -{ - "backupName": "example-backup-name", - "backupMethodType": "FULL", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd" -} +```http +GET /v4.0/availability-zones ``` -

-
+#### 요청 -#### 증분 백업(backupMethodType이 `INCREMENTAL`인 경우) +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|------------| -| baseBackupId | Body | UUID | O | 기준 백업의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZones | Body | Array | 가용성 영역 목록 | +| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | +| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | +| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 |
예시

```json { - "backupName": "example-backup-name", - "backupMethodType": "INCREMENTAL", - "baseBackupId": "3ae7914f-9b42-4729-b125-87417b72cf36" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "availabilityZones": [ + { + "zoneState": { + "available": false + } + } + ] } ```

- -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 백업 내보내기 +## 네트워크 + +### 서브넷 목록 보기 ```http -POST /v4.0/backups/{backupId}/export +GET /v4.0/network/subnets ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Export | 백업 내보내기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |
예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - -> [주의] -> 수동 백업의 경우 백업이 수행된 DB 인스턴스가 존재하지 않으면, 백업을 오브젝트 스토리지로 내보낼 수 없습니다. - --- -### 백업 복원하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v4.0/backups/{backupId}/restore +GET /v4.0/storage-types ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------| -| RDSforMySQL:Backup.Restore | 백업 복원하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Integer | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |
예시

```json - { - "dbInstanceName": "db-instance-restore", - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbPort": 10000, - "parameterGroupId": "132d383c-38e3-468a-a826-5e9a8fff15d0", - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "storageTypes": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 백업 삭제하기 +## 모니터링 + +### 통계 정보 조회 ```http -DELETE /v4.0/backups/{backupId} +GET /v4.0/metric-statistics ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Delete | 백업 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | - -### DB 보안 그룹 목록 보기 +### Metric 목록 보기 ```http -GET /v4.0/db-security-groups +GET /v4.0/metrics ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|----------------| -| RDSforMySQL:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-----------------------------------| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -2992,14 +3550,9 @@ GET /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "metrics": [ { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2022-02-19T19:18:13+09:00" + "unit": "unit-example" } ] } @@ -3010,48 +3563,44 @@ GET /v4.0/db-security-groups --- -### DB 보안 그룹 상세 보기 +## 백업 -```http -GET /v4.0/db-security-groups/{dbSecurityGroupId} -``` +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | -#### 필요 권한 +### 백업 목록 조회 -| 권한명 | 설명 | -|-------------------------------------------------|----------------| -| RDSforMySQL:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | +```http +GET /v4.0/backups +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|----------|--------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다.
- `PORT`: 지정된 포트값으로 설정됩니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | 허용할 트래픽의 원격 소스 | -| rules.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| rules.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3063,30 +3612,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "rules": [ - { - "ruleId": "17c88ef6-95f1-4678-84f9-fee1b22e250d", - "description": "description", - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } - ], - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } + "totalCounts": 1, + "backups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -3095,56 +3626,30 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 생성하기 +### 백업 생성하기 ```http -POST /v4.0/db-security-groups +POST /v4.0/backups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | +| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | +| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "rules": [ - { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0" - } - ] + "backupName": "backupName", + "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "backupMethodType": "FULL" } ``` @@ -3153,48 +3658,48 @@ POST /v4.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|------|---------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | - ---- - -### DB 보안 그룹 수정하기 - -```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|-----------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

+--- + +### 백업 삭제하기 + +```http +DELETE /v4.0/backups/{backupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3205,39 +3710,52 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### DB 보안 그룹 삭제하기 +### 백업 단건 조회 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/backups/{backupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backup | Body | Object | 백업 상세 정보 | +| backup.backupId | Body | String | 백업의 식별자 | +| backup.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| backup.dbVersion | Body | Enum | DB 엔진 버전 | +| backup.utilVersion | Body | String | 유틸리티 버전 | +| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | +| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | +| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | +| backup.backupSize | Body | Number | 백업의 크기(Byte) | +| backup.isReplicable | Body | Boolean | 복제 가능 여부 | +| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | +| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | +| backup.createdYmdt | Body | DateTime | 생성 일시 | +| backup.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3248,6 +3766,26 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true + }, + "backup": { + "backupId": "backupId-example", + "regionCode": "KR4", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupMethodType": "FULL", + "backupFileType": "XBSTREAM", + "backupSize": 1, + "isReplicable": false, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } } ``` @@ -3257,48 +3795,33 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 규칙 생성하기 +### 백업 내보내기 ```http -POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v4.0/backups/{backupId}/export ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT", - "minPort": 10000, - "maxPort": 10000 - }, - "cidr": "0.0.0.0/0" + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -3307,130 +3830,179 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### DB 보안 그룹 규칙 수정하기 - -```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleId | URL | UUID | O | DB 보안 그룹 규칙의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. -

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "DB_PORT" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "0.0.0.0/0" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 보안 그룹 규칙 삭제하기 +### 백업 복원하기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v4.0/backups/{backupId}/restore +``` + +#### 공통 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | +| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 삭제하기 | +

+
-#### 요청 +#### 응답 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|-------|----|---------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleIds | Query | Array | O | DB 보안 그룹 규칙의 식별자 목록 | +
예시 +

-#### 응답 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -## 파라미터 그룹 +## 사용자 그룹 -### 파라미터 그룹 목록 보기 +### 사용자 그룹 목록 보기 ```http -GET /v4.0/parameter-groups +GET /v4.0/user-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.List | 파라미터 그룹 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------|-------|------|----|----------| -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-------------------------------------------------------------------| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3442,15 +4014,10 @@ GET /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroups": [ + "totalCounts": 1, + "userGroups": [ { - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "createdYmdt": "2023-02-31T15:28:17+09:00", - "updatedYmdt": "2023-02-31T15:28:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -3459,50 +4026,41 @@ GET /v4.0/parameter-groups

- --- -### 파라미터 그룹 상세 보기 +### 사용자 그룹 생성하기 ```http -GET /v4.0/parameter-groups/{parameterGroupId} +POST /v4.0/user-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.Get | 파라미터 그룹 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|--------------------------------------------------------------------------------------------------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | UUID | 파라미터 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- `CLIENT`: client
- `MYSQL`: mysql
- `MYSQLD`: mysqld | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- `VARIABLE`: 언제든 수정 가능
- `CONSTANT`: 수정 불가능
- `INIT_VARIABLE`: DB 인스턴스 생성 시에만 수정 가능 | -| parameters.applyType | Body | Enum | 적용 타입
- `SESSION`: 세션 적용
- `FILE`: 설정 파일 적용(재시작 필요)
- `BOTH`: 전체(재시작 필요) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 |
예시

@@ -3514,143 +4072,112 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "parameters": [ - { - "parameterId": "fa040b5e-f29f-46de-8f0d-bba4cb82887a", - "parameterFileGroup": "client", - "parameterName": "socket", - "fileParameterName": "socket", - "value": "/home/tcrds/db/mysql/tmp/mysql.sock", - "defaultValue": "/home/tcrds/db/mysql/tmp/mysql.sock", - "allowedValue": "", - "updateType": "CONSTANT", - "applyType": "BOTH" - } - ], - "createdYmdt": "2023-03-13T11:02:28+09:00", - "updatedYmdt": "2023-03-13T11:02:28+09:00" + "userGroupId": "userGroupId-example" } ```

- --- -### 파라미터 그룹 생성하기 +### 사용자 그룹 삭제하기 ```http -POST /v4.0/parameter-groups +DELETE /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Create | 파라미터 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | - -
예시 -

- -```json -{ - "parameterGroupName": "parameter-group", - "dbVersion": "MYSQL_V8028" -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 복사하기 +### 사용자 그룹 상세 보기 ```http -POST /v4.0/parameter-groups/{parameterGroupId}/copy +GET /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. -| 권한명 | 설명 | -|-------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Copy | 파라미터 그룹 복사하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

```json { - "parameterGroupName": "parameter-group-copy", - "description": "copy" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ + { + "memberId": "memberId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | - --- -### 파라미터 그룹 수정하기 +### 사용자 그룹 수정하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId} +PUT /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |
예시

```json { - "parameterGroupName": "parameter-group" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ``` @@ -3661,6 +4188,33 @@ PUT /v4.0/parameter-groups/{parameterGroupId} 이 API는 응답 본문을 반환하지 않습니다. +--- + +## 알림 그룹 + +### 알림 그룹 목록 보기 + +```http +GET /v4.0/notification-groups +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +

예시

@@ -3670,7 +4224,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -3679,38 +4238,34 @@ PUT /v4.0/parameter-groups/{parameterGroupId} --- -### 파라미터 수정하기 +### 알림 그룹 생성하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/parameters +POST /v4.0/notification-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------|------|--------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ - { - "parameterId": "3abac558-7274-44e1-9f4a-f100f53f67ba", - "value": "0" - } - ] + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], + "userGroupIds": [] } ``` @@ -3719,7 +4274,9 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3730,7 +4287,8 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3739,27 +4297,57 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters --- -### 파라미터 그룹 재설정하기 +### 알림 그룹 삭제하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/reset +DELETE /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. -| 권한명 | 설명 | -|--------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | +--- + +### 알림 그룹 상세 보기 + +```http +GET /v4.0/notification-groups/{notificationGroupId} +``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3770,7 +4358,24 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ + { + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3779,61 +4384,67 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset --- -### 파라미터 그룹 삭제하기 +### 알림 그룹 수정하기 ```http -DELETE /v4.0/parameter-groups/{parameterGroupId} +PUT /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 사용자 그룹 +## 이벤트 -### 사용자 그룹 목록 보기 +### 이벤트 카테고리 -```http -GET /v4.0/user-groups -``` +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. + +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -#### 필요 권한 +### 구독 가능한 이벤트 코드 목록 보기 -| 권한명 | 설명 | -|--------------------------------------------|--------------| -| RDSforMySQL:UserGroup.List | 사용자 그룹 목록 보기 | +```http +GET /v4.0/event-codes +``` #### 요청 @@ -3841,13 +4452,11 @@ GET /v4.0/user-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|-----------------------------------| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |
예시

@@ -3859,12 +4468,9 @@ GET /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "eventCodes": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "eventCategoryType": "ALL" } ] } @@ -3875,37 +4481,30 @@ GET /v4.0/user-groups --- -### 사용자 그룹 상세 보기 +### 이벤트 목록 조회 ```http -GET /v4.0/user-groups/{userGroupId} +GET /v4.0/events ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|--------------| -| RDSforMySQL:UserGroup.Get | 사용자 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|----------|-----------------------------------------------------------------------------------------------------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
`ENTIRE`: 프로젝트 멤버 전체를 포함하는 사용자 그룹
`INDIVIDUAL_MEMBER`: 특정 프로젝트 멤버를 포함하는 사용자 그룹 | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

@@ -3917,16 +4516,12 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "userGroupTypeCode": "INDIVIDUAL_MEMBER", - "members": [ + "totalCounts": 1, + "events": [ { - "memberId": "1321e759-2ef3-4b85-9921-b13e918b24b5" + "eventYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + ] } ``` @@ -3935,87 +4530,99 @@ GET /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 생성하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v4.0/user-groups +GET /v4.0/event-subscriptions ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Create | 사용자 그룹 생성하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|-----------------------------------------------------------| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록
`selectAll`이 true인 경우 해당 필드 값은 무시됨 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |

예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } ] } ``` -```json -{ - "userGroupName": "dev-team", - "selectAll": true -} -``` -

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------------|------|------|-------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | - --- -### 사용자 그룹 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v4.0/user-groups/{userGroupId} +POST /v4.0/event-subscriptions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Modify | 사용자 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|----------------------------------------------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | -| userGroupName | Body | String | X | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5", - "f9064b09-2b15-442e-a4b0-3a5a2754555e" - ] + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ``` @@ -4024,7 +4631,9 @@ PUT /v4.0/user-groups/{userGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -4035,7 +4644,8 @@ PUT /v4.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -4044,76 +4654,121 @@ PUT /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 삭제하기 +### 이벤트 구독 삭제하기 ```http -DELETE /v4.0/user-groups/{userGroupId} +DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Delete | 사용자 그룹 삭제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v4.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 알림 그룹 +## 작업 정보 -### 알림 그룹 목록 보기 +### 작업 상태 -```http -GET /v4.0/notification-groups -``` +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | -#### 필요 권한 +### 작업 정보 상세 보기 -| 권한명 | 설명 | -|----------------------------------------------------|-------------| -| RDSforMySQL:NotificationGroup.List | 알림 그룹 목록 보기 | +```http +GET /v4.0/jobs/{jobId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------------|------|----------|-----------------------------------| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4125,17 +4780,15 @@ GET /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ { - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "resourceId": "resourceId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4144,43 +4797,32 @@ GET /v4.0/notification-groups --- -### 알림 그룹 상세 보기 +## 파라미터 그룹 + +### 파라미터 그룹 목록 보기 ```http -GET /v4.0/notification-groups/{notificationGroupId} +GET /v4.0/parameter-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|-------------| -| RDSforMySQL:NotificationGroup.Get | 알림 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------------|------|----------|-----------------------------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 파라미터 그룹 수 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4192,25 +4834,12 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "dbInstances": [ - { - "dbInstanceId": "ed5cb985-526f-4c54-9ae0-40288593de65", - "dbInstanceName": "database" - } - ], - "userGroups": [ + "totalCounts": 1, + "parameterGroups": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + ] } ``` @@ -4219,43 +4848,28 @@ GET /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v4.0/notification-groups +POST /v4.0/parameter-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Create | 알림 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------------| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "notificationGroupName": "dev-team-noti", - "notifyEmail": false, - "isEnable": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65" - ], - "userGroupIds": [ - "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0" - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -4264,55 +4878,84 @@ POST /v4.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|------|------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "parameterGroupId": "parameterGroupId-example" +} +``` + +

+
--- -### 알림 그룹 수정하기 +### 파라미터 그룹 삭제하기 ```http -PUT /v4.0/notification-groups/{notificationGroupId} +DELETE /v4.0/parameter-groups/{parameterGroupId} ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Modify | 알림 그룹 수정하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부 | -| notifySms | Body | Boolean | X | SMS 알림 여부 | -| isEnabled | Body | Boolean | X | 활성화 여부 | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +#### 응답 -
예시 -

+이 API는 응답 본문을 반환하지 않습니다. -```json -{ - "notifyEmail": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65", - "d51b7da0-682f-47ff-b588-b739f6adc740" - ] -} +--- + +### 파라미터 그룹 상세 보기 + +```http +GET /v4.0/parameter-groups/{parameterGroupId} ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4323,7 +4966,19 @@ PUT /v4.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ + { + "applyType": "BOTH" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4332,73 +4987,71 @@ PUT /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 수정하기 ```http -DELETE /v4.0/notification-groups/{notificationGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Delete | 알림 그룹 삭제하기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 모니터링 +이 API는 응답 본문을 반환하지 않습니다. -### Metric 목록 보기 +--- + +### 파라미터 그룹 복사하기 ```http -GET /v4.0/metrics +POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Metric.List | 통계 정보 조회 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|--------|-----------| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | Enum | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -4410,12 +5063,7 @@ GET /v4.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "measureName": "CPU_USAGE", - "unit": "%" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4424,62 +5072,29 @@ GET /v4.0/metrics --- -### 통계 정보 조회 +### 파라미터 수정하기 ```http -GET /v4.0/metric-statistics +PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Metric.List | 통계 정보 조회 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|----------|----|-----------------------------------| -| dbInstanceId | Query | UUID | O | DB 인스턴스의 식별자 | -| measureNames | Query | Array | O | 조회 지표 목록
- 최소 크기: `1` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| interval | Query | Number | X | 조회 간격 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|-----------|----------| -| metricStatistics | Body | Array | 통계 정보 목록 | -| metricStatistics.measureName | Body | Enum | 측정 항목 유형 | -| metricStatistics.unit | Body | String | 측정값 단위 | -| metricStatistics.values | Body | Array | 측정값 목록 | -| metricStatistics.values.timestamp | Body | Timestamp | 측정 시간 | -| metricStatistics.values.value | Body | Object | 측정값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "metricStatistics": [ + "modifiedParameters": [ { - "measureName": "MYSQL_STATUS", - "unit": "", - "values": [ - [ - 1679298540, - "1" - ], - [ - 1679298600, - "1" - ], - [ - 1679298660, - "1" - ] - ] + "value": "value-example" } ] } @@ -4488,64 +5103,53 @@ GET /v4.0/metric-statistics

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 +### 파라미터 그룹 재설정하기 -### 이벤트 카테고리 +```http +PUT /v4.0/parameter-groups/{parameterGroupId}/reset +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 이벤트 목록 조회 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -```http -GET /v4.0/events -``` +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 프로젝트 정보 -#### 필요 권한 +### 프로젝트 멤버 목록 보기 -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMySQL:Event.List | 이벤트 목록 보기 | +```http +GET /v4.0/project/members +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| eventCategoryType | Query | Enum | O | 조회할 이벤트 카테고리 유형
- `ALL`: 전체
- `INSTANCE`: DB 인스턴스
- `BACKUP`: 백업
- `DB_SECURITY_GROUP`: DB 보안 그룹
- `TENANT`: 테넌트 | -| sourceId | Query | String | X | 이벤트가 발생한 대상 리소스의 식별자 | -| keyword | Query | String | X | 이벤트 메시지에 포함된 문자열 검색어 | -| ascendingOrder | Query | Enum | X | 이벤트 메시지 정렬 순서
- `ASC`: 오름차순
- `DESC`: 내림차순
- 기본값: `DESC` | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|---------------------------------------| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메시지 목록 | -| events.messages.langCode | Body | String | 언어 코드 | -| events.messages.message | Body | String | 이벤트 메시지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -4557,32 +5161,9 @@ GET /v4.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 28, - "events": [ + "members": [ { - "eventCategoryType": "INSTANCE", - "eventCode": "INSTC_02_01", - "sourceId": "76f00947-356e-4a20-8922-428368cc45ed", - "sourceName": "db-instance", - "messages": [ - { - "langCode": "EN", - "message": "DB instance started" - }, - { - "langCode": "JA", - "message": "DBインスタンスの起動" - }, - { - "langCode": "KO", - "message": "DB 인스턴스 시작" - }, - { - "langCode": "ZH", - "message": "DB instance started" - } - ], - "eventYmdt": "2023-03-20T16:31:59+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -4593,29 +5174,23 @@ GET /v4.0/events --- -### 구독 가능한 이벤트 코드 목록 보기 +### 리전 목록 보기 ```http -GET /v4.0/event-codes +GET /v4.0/project/regions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMySQL:Event.List | 이벤트 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|-------|-------------| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

@@ -4627,10 +5202,9 @@ GET /v4.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "regions": [ { - "eventCode": "INSTC_05_01", - "eventCategoryType": "INSTANCE" + "isEnabled": false } ] } @@ -4640,3 +5214,4 @@ GET /v4.0/event-codes

--- + diff --git a/ko/api-guide-v4.0-ninc.md b/ko/api-guide-v4.0-ninc.md index 2601e714..f0388540 100644 --- a/ko/api-guide-v4.0-ninc.md +++ b/ko/api-guide-v4.0-ninc.md @@ -1,35 +1,32 @@ ## Database > RDS for MySQL > API 가이드 -| 리전 | 엔드포인트 | -|-----------|-----------------------------------------------| -| 한국(판교) 리전 | https://kr4-rds-mysql-api.ninc.go.kr | +## RDS for MySQL API 공통 정보 -## 인증 및 권한 +### 인증 및 권한 -API를 사용하려면 [Public API > API 호출 및 인증](/nhncloud/ko/public-api/api-authentication-ninc/)을 통해 발급 받은 Bearer 유형의 토큰이 필요합니다. +RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. 발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|--------|--------|----|-------------------------------------------------------------| -| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | +| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. -또한 프로젝트 멤버 역할에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER`로 구분하여 권한을 부여할 수 있습니다. - -* `RDS for MySQL ADMIN` 권한은 모든 기능을 사용 가능합니다. -* `RDS for MySQL VIEWER` 권한은 정보를 조회하는 기능만 사용 가능합니다. +* `RDS for MySQL ADMIN` 역할은 API 실행에 필요한 모든 권한이 부여됩니다. +* `RDS for MySQL VIEWER` 역할은 정보를 조회하는 권한만 부여됩니다. * DB 인스턴스를 생성, 수정, 삭제하거나, DB 인스턴스를 대상으로 하는 어떠한 기능도 사용할 수 없습니다. - * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용 가능합니다. + * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용할 수 있습니다. API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같은 오류가 발생합니다. -| resultCode | resultMessage | 설명 | -|------------|---------------|-------------| -| 80401 | Unauthorized | 인증에 실패했습니다. | -| 80403 | Forbidden | 권한이 없습니다. | +| resultCode | resultMessage | 설명 | +|------------|---------------|-----| +| 80401 | Unauthorized | 인증에 실패했습니다. | +| 80403 | Forbidden | 권한이 없습니다. | -## 응답 공통 정보 +### 응답 공통 정보 모든 API 요청에 '200 OK'로 응답합니다. 자세한 응답 결과는 응답 본문의 헤더를 참고합니다. @@ -45,54 +42,67 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 ``` #### 필드 -| 이름 | 형식 | 설명 | -|---------------|---------|-----------------------------------------| -| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | -| resultMessage | String | 결과 메시지 | -| isSuccessful | Boolean | 성공 여부 | - - -## DB 엔진 유형 - -| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | -|--------------|----------|-----------------|--------| -| MYSQL\_V5633 | X | X | NATIVE | -| MYSQL\_V5715 | O | O | NATIVE | -| MYSQL\_V5719 | O | O | NATIVE | -| MYSQL\_V5726 | O | O | NATIVE | -| MYSQL\_V5731 | X | X | NATIVE | -| MYSQL\_V5733 | O | X | NATIVE, SHA256 | -| MYSQL\_V5737 | O | O | NATIVE, SHA256 | -| MYSQL\_V8018 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8023 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8028 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8032 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8033 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8034 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8405 | O | O | CACHING_SHA2 | +| 이름 | 형식 | 설명 | +|-----|-----|-----| +| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | +| resultMessage | String | 결과 메시지 | +| isSuccessful | Boolean | 성공 여부 | + +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(대구) 리전 | https://ninc-kr4-rds-proxy.cloud.toastoven.net | + +### DB 엔진 유형 + +| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | +|------------|----------|------------------|------------| +| MYSQL_V5633 | X | X | NATIVE | +| MYSQL_V5715 | O | O | NATIVE | +| MYSQL_V5719 | O | O | NATIVE | +| MYSQL_V5726 | O | O | NATIVE | +| MYSQL_V5731 | X | X | NATIVE | +| MYSQL_V5733 | O | X | NATIVE, SHA256 | +| MYSQL_V5737 | O | O | NATIVE, SHA256 | +| MYSQL_V8018 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8023 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8028 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8032 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8033 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8034 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8405 | O | O | CACHING_SHA2 | +| MYSQL_V8406 | O | O | CACHING_SHA2 | +| MYSQL_V8407 | O | O | CACHING_SHA2 | +| MYSQL_V8408 | O | O | CACHING_SHA2 | * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## 프로젝트 정보 +## DB 보안 그룹 -### 리전 목록 보기 +### DB 보안 그룹 진행 상태 -```http -GET /v4.0/project/regions -``` +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | -#### 필요 권한 +### DB 보안 그룹 목록 보기 -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMySQL:Project.Get | 프로젝트 정보 조회 | +```http +GET /v4.0/db-security-groups +``` #### 요청 @@ -100,11 +110,16 @@ GET /v4.0/project/regions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------|------|---------|----------------------------------------------------------------------------| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -116,69 +131,52 @@ GET /v4.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ - { - "regionCode": "KR1", - "isEnabled": true - }, - { - "regionCode": "KR2", - "isEnabled": true - }, + "totalCounts": 1, + "dbSecurityGroups": [ { - "regionCode": "JP1", - "isEnabled": true + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } ``` +

--- -### 프로젝트 멤버 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v4.0/project/members +POST /v4.0/db-security-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMySQL:Project.Get | 프로젝트 정보 조회 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|--------|-----------------| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ { - "memberId": "1b1d3627-507a-49ea-8cb7-c86dfa9caa58", - "memberName": "홍길동", - "emailAddress": "gildong.hong@nhn.com", - "phoneNumber": "+821012345678" + "description": "description-example" } ] } @@ -187,35 +185,11 @@ GET /v4.0/project/members

---- - -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 - -```http -GET /v4.0/db-flavors -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|------------------| -| RDSforMySQL:DbFlavor.List | DB 인스턴스 사양 목록 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -227,14 +201,7 @@ GET /v4.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbFlavorName": "m2.c1m2", - "ram": 2048, - "vcpus": 1 - } - ] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -243,34 +210,62 @@ GET /v4.0/db-flavors --- -## 네트워크 - -### 서브넷 목록 보기 +### DB 보안 그룹 삭제하기 ```http -GET /v4.0/network/subnets +DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 상세 보기 -| 권한명 | 설명 | -|------------------------------------------|-----------| -| RDSforMySQL:Network.List | 서브넷 목록 보기 | +```http +GET /v4.0/db-security-groups/{dbSecurityGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|---------|------------------| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | UUID | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| rules | Body | Array | DB 보안 그룹 규칙 목록 | +| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | 포트 객체 | +| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | 최소 포트 범위 | +| rules.port.maxPort | Body | Number | 최대 포트 범위 | +| rules.cidr | Body | String | CIDR | +| rules.createdYmdt | Body | DateTime | 생성 일시 | +| rules.updatedYmdt | Body | DateTime | 수정 일시 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -282,15 +277,17 @@ GET /v4.0/network/subnets "resultMessage": "SUCCESS", "isSuccessful": true }, - "subnets": [ + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ { - "subnetId": "1b2a9b23-0725-4b92-8c78-35db66b8ad9f", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/24", - "usingGateway": true, - "availableIpCount": 240 + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -299,81 +296,59 @@ GET /v4.0/network/subnets --- -## DB 엔진 - -### DB 엔진 목록 보기 +### DB 보안 그룹 수정하기 ```http -GET /v4.0/db-versions +PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|-------------| -| RDSforMySQL:DbVersion.List | DB 엔진 목록 보기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|---------|-----------------------| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "dbVersions": [ - { - "dbVersion": "MYSQL_V8028", - "dbVersionName": "MySQL 8.0.28", - "restorableFromObs": true - } - ] + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 데이터 스토리지 +이 API는 응답 본문을 반환하지 않습니다. + +--- -### 데이터 스토리지 타입 목록 보기 +### DB 보안 그룹 규칙 삭제하기 ```http -GET /v4.0/storage-types +DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------|-------------------| -| RDSforMySQL:Storage.List | 데이터 스토리지 타입 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|-------|----------------| -| storageTypes | Body | Array | 데이터 스토리지 타입 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -385,10 +360,7 @@ GET /v4.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [ - "General SSD", - "General HDD" - ] + "jobId": "jobId-example" } ``` @@ -397,56 +369,51 @@ GET /v4.0/storage-types --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### DB 보안 그룹 규칙 생성하기 ```http -GET /v4.0/jobs/{jobId} +POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------|-------------| -| RDSforMySQL:Job.Get | 작업 정보 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------|-----|------|----|---------| -| jobId | URL | UUID | O | 작업의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------|------|----------|-----------------------------------| -| jobId | Body | UUID | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태 | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | Enum | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | UUID | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -458,16 +425,7 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "0ddb042c-5af6-43fb-a914-f4dd0540eb7c", - "jobStatus": "RUNNING", - "resourceRelations": [ - { - "resourceType": "DB_INSTANCE", - "resourceId": "56b39dcf-65eb-47ec-9d4f-09f160ba2266" - } - ], - "createdYmdt": "2023-02-22T20:47:12+09:00", - "updatedYmdt": "2023-02-22T20:49:46+09:00" + "jobId": "jobId-example" } ``` @@ -476,33 +434,52 @@ GET /v4.0/jobs/{jobId} --- -## DB 인스턴스 그룹 - -### DB 인스턴스 그룹 목록 보기 +### DB 보안 그룹 규칙 수정하기 ```http -GET /v4.0/db-instance-groups +PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` -#### 필요 권한 +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | -| 권한명 | 설명 | -|--------------------------------------------------|------------------| -| RDSforMySQL:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | +

예시 +

-#### 요청 +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` -이 API는 요청 본문을 요구하지 않습니다. +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------|------|----------|--------------------------------------------------------------------------| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -514,14 +491,7 @@ GET /v4.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ - { - "dbInstanceGroupId": "05de0746-89fd-49c8-94f9-9c5b1df97009", - "replicationType": "STANDALONE", - "createdYmdt": "2023-02-13T17:35:20+09:00", - "updatedYmdt": "2023-02-13T17:35:20+09:00" - } - ] + "jobId": "jobId-example" } ``` @@ -530,38 +500,26 @@ GET /v4.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v4.0/db-instance-groups/{dbInstanceGroupId} +GET /v4.0/db-versions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|------------------| -| RDSforMySQL:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|-----------------| -| dbInstanceGroupId | URL | UUID | O | DB 인스턴스 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |

예시

@@ -573,17 +531,11 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "36617a8e-0df8-4b16-b6ea-6306019e95da", - "replicationType": "STANDALONE", - "dbInstances": [ + "dbVersions": [ { - "dbInstanceId": "6d2db0ef-fe9b-4ed4-97b1-d97fcb4cf1b8", - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE" + "restorableFromObs": false } - ], - "createdYmdt": "2023-03-03T17:38:14+09:00", - "updatedYmdt": "2023-03-03T17:38:14+09:00" + ] } ``` @@ -616,8 +568,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `BACKING_UP` | 백업 중 | | `CANCELING` | 취소 중 | | `CREATING` | 생성 중 | -| `CREATING_SCHEMA` | DB 스키마 생성 중 | -| `CREATING_USER` | 사용자 생성 중 | +| `CREATING_SCHEMA` | DB 스키마 생성 중 | +| `CREATING_USER` | 사용자 생성 중 | | `DELETING` | 삭제 중 | | `DELETING_SCHEMA` | DB 스키마 삭제 중 | | `DELETING_USER` | 사용자 삭제 중 | @@ -636,8 +588,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `STARTING` | 시작 중 | | `STOPPING` | 정지 중 | | `SYNCING_SCHEMA` | DB 스키마 동기화 중 | -| `SYNCING_USER` | 사용자 동기화 중 | -| `UPDATING_USER` | 사용자 수정 중 | +| `SYNCING_USER` | 사용자 동기화 중 | +| `UPDATING_USER` | 사용자 수정 중 | ### DB 인스턴스 목록 보기 @@ -645,32 +597,26 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|---------------| -| RDSforMySQL:DbInstance.List | DB 인스턴스 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | -| dbInstances.dbPort | Body | Number | DB 포트 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태 | -| dbInstances.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstances.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstances | Body | Array | DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | +| dbInstances.dbPort | Body | Number | DB 포트 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbInstances.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstances.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -684,17 +630,7 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "createdYmdt": "2023-01-23T12:03:13+09:00", - "updatedYmdt": "2023-02-02T17:20:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -705,51 +641,123 @@ GET /v4.0/db-instances --- -### DB 인스턴스 상세 보기 +### DB 인스턴스 생성하기 ```http -GET /v4.0/db-instances/{dbInstanceId} +POST /v4.0/db-instances ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| authenticationPlugin | Body | Enum | X | 인증 Plugin
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | TLS Option
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE", + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| dbPort | Body | Number | DB 포트 | -| dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| progressStatus | Body | Enum | DB 인스턴스의 현재 작업 진행 상태 | -| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | -| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | -| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | -| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | -| supportAuthenticationPlugin | Body | Boolean | 인증 플러그인 지원 여부 | -| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | -| needMigration | Body | Boolean | 마이그레이션 필요 여부 | -| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -761,27 +769,7 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "dbFlavorId": "e9ed4ef6-78d7-46fa-ace9-32481e97f3b7", - "parameterGroupId": "b03e8b13-de27-4d04-a488-ff5689589372", - "dbSecurityGroupIds": ["01908c35-d2c9-4852-baf0-17f06ec42c03"], - "notificationGroupIds": ["83a62a33-ddbf-4a04-8653-e54463d5b1ac"], - "useDeletionProtection": false, - "useSlowQueryAnalysis": true, - "supportAuthenticationPlugin": true, - "needToApplyParameterGroup": false, - "needMigration": false, - "supportDbVersionUpgrade": true, - "createdYmdt": "2022-11-23T12:03:13+09:00", - "updatedYmdt": "2022-12-02T17:20:17+09:00" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -790,96 +778,167 @@ GET /v4.0/db-instances/{dbInstanceId} --- -### DB 인스턴스 생성하기 +### 오브젝트 스토리지를 이용한 DB 인스턴스 복원 ```http -POST /v4.0/db-instances +POST /v4.0/db-instances/restore-from-obs ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Create | DB 인스턴스 생성하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|-------|---------|----|---------------------------------------------------------------------| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbUserName | Body | String | O | DB 사용자 계정명 | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | +| restore.username | Body | String | O | NHN Cloud 계정 혹은 IAM 멤버 ID | +| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | +| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | +| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "dbVersion": "ENUM_VALUE", + "useHighAvailability": false, + "pingInterval": 3, "storage": { - "storageType": "General SSD", - "storageSize": 20 + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" }, "backup": { - "backupPeriod": 1, + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": true, "backupSchedules": [ { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR" + "backupWndDuration": "HALF_AN_HOUR" } ] - } + }, + "restore": { + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" + }, + "useDefaultNotification": false, + "useSlowQueryAnalysis": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 인스턴스 삭제하기 + +```http +DELETE /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| deleteAutoBackup | Body | Boolean | X | 자동 백업 삭제 여부
- 기본값: `false` | + +
예시 +

+ +```json +{ + "deleteAutoBackup": false } ``` @@ -888,10 +947,106 @@ POST /v4.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 인스턴스 상세 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| dbPort | Body | Number | DB 포트 | +| dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | +| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | +| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | +| supportAuthenticationPlugin | Body | Boolean | 인증 plugin 지원 여부 | +| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | +| needMigration | Body | Boolean | 마이그레이션 필요 여부 | +| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "dbFlavorId": "dbFlavorId-example", + "parameterGroupId": "parameterGroupId-example", + "dbSecurityGroupIds": [], + "notificationGroupIds": [], + "useDeletionProtection": false, + "useSlowQueryAnalysis": false, + "supportAuthenticationPlugin": false, + "needToApplyParameterGroup": false, + "needMigration": false, + "supportDbVersionUpgrade": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ --- ### DB 인스턴스 수정하기 @@ -900,40 +1055,599 @@ POST /v4.0/db-instances PUT /v4.0/db-instances/{dbInstanceId} ``` -#### 필요 권한 +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbVersion | Body | Enum | X | DB 엔진 버전 코드 | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | +| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
- 기본값: `false` | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbPort": 1, + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "useSlowQueryAnalysis": false, + "useDummy": false, + "dbSecurityGroupIds": [], + "executeBackup": false, + "useOnlineFailover": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 백업 정보 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backupPeriod | Body | Number | 백업 보관 기간(일) | +| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | +| backupRetryCount | Body | Number | 백업 재시도 횟수 | +| replicationRegion | Body | Enum | 백업 복제 리전
- KR4: `한국(대구)` | +| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration
- HALF_AN_HOUR
- ONE_HOUR
- ONE_HOUR_AND_HALF
- TWO_HOURS
- TWO_HOURS_AND_HALF
- THREE_HOURS | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "backupPeriod": 1, + "ftwrlWaitTimeout": 1, + "backupRetryCount": 1, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +--- + +### 백업 정보 수정하기 + +```http +PUT /v4.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +
예시 +

+ +```json +{ + "backupPeriod": 0, + "ftwrlWaitTimeout": 0, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 바이너리 로그 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/binlogs +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| binLogs | Body | Array | BinLog 파일 목록 | +| binLogs.binLogFileName | Body | String | BinLog 파일 이름 | +| binLogs.binLogFileSize | Body | Number | BinLog 파일 크기 (Byte) | +| binLogs.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

-| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "binLogs": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### 바이너리 로그 삭제 + +```http +POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| lastBinLogFileName | Body | String | O | 삭제할 마지막 BinLog 파일 이름 (해당 파일 직전까지 삭제됨) | + +
예시 +

+ +```json +{ + "lastBinLogFileName": "mysql-bin.000010" +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 인증서 파일 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/certificates +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| certificates | Body | Array | 인증서 파일 목록 | +| certificates.fileName | Body | String | 인증서 파일 이름 | +| certificates.certificateType | Body | Enum | 인증서 타입
- CA_FILE
- CERT_FILE
- KEY_FILE | +| certificates.fileSize | Body | Number | 인증서 파일 크기(Byte) | +| certificates.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "certificates": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### 인증서 파일 내보내기 + +```http +POST /v4.0/db-instances/{dbInstanceId}/certificates/upload +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| certificateTypes | Body | Array | O | 업로드할 인증서 타입 목록 | +| tenantId | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 인증서 파일의 경로 | + +
예시 +

+ +```json +{ + "certificateTypes": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 스키마 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSchemas | Body | Array | DB 스키마 목록 | +| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | +| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | +| dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbSchemas": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### DB 스키마 생성하기 + +```http +POST /v4.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaName | Body | String | O | DB 스키마 이름
- 최대 길이: `64`
- 영문 시작, 영문/숫자/_ 허용, 1~64자, MySQL 예약어 불가 | + +
예시 +

+ +```json +{ + "dbSchemaName": "dbSchemaName-example" +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 스키마 삭제하기 + +```http +DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 사용자 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/db-users +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbUsers | Body | Array | DB 사용자 목록 | +| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | +| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | +| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- STABLE
- CREATING
- UPDATING
- SYNCING
- DELETING
- DELETED | +| dbUsers.createdYmdt | Body | DateTime | 생성 일시 | +| dbUsers.updatedYmdt | Body | DateTime | 수정 일시 | +| dbUsers.authenticationPlugin | Body | Enum | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| dbUsers.tlsOption | Body | Enum | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbUsers": [ + { + "tlsOption": "NONE" + } + ] +} +``` + +

+
+ +--- + +### DB 사용자 생성하기 + +```http +POST /v4.0/db-instances/{dbInstanceId}/db-users +``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|---------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbPort | Body | Number | X | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbVersion | Body | Enum | X | DB 엔진 유형 | -| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| host | Body | String | O | DB 사용자 계정의 호스트명
- 최대 길이: `45` | +| authorityType | Body | Enum | O | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |
예시

```json { - "dbInstanceName": "db-instance2", - "description": "description2", - "dbPort": 10001, - "dbSecurityGroupIds": [], - "executeBackup": true + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "host": "host-example", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" } ``` @@ -942,228 +1656,249 @@ PUT /v4.0/db-instances/{dbInstanceId} #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 삭제하기 +### DB 사용자 삭제하기 ```http -DELETE /v4.0/db-instances/{dbInstanceId} +DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Delete | DB 인스턴스 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 재시작하기 +### DB 사용자 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/restart +PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Restart | DB 인스턴스 재시작하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | +| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| authorityType | Body | Enum | X | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | -#### 요청 +
예시 +

+ +```json +{ + "dbPassword": "dbPassword", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- -### DB 인스턴스 강제 재시작하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/force-restart +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|------------------| -| RDSforMySQL:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | +

+
-#### 요청 +--- -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +### DB 인스턴스 삭제 보호 설정 변경 +```http +PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection +``` -#### 응답 +#### 요청 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "useDeletionProtection": false } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 시작하기 +### DB 인스턴스 강제 재시작하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/start +POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Start | DB 인스턴스 시작하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 정지하기 +### 고가용성 정보 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/stop +GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Stop | DB 인스턴스 정지하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| useHighAvailability | Body | Boolean | 고가용성 사용 여부
- 기본값: `false` | +| haStatus | Body | Enum | 고가용성 상태
- CREATED: `생성됨`
- STABLE: `정상`
- PAUSING: `일시 중지 중`
- DISABLE: `정지`
- DISABLE_MASTER_IN_REPLICATION: `마스터 비정상 복제 감지로 인한 고가용성 중단`
- DISABLE_MHA_PROCESS: `고가용성 프로세스 중단`
- DISABLE_REPLICATION_STOP: `복제 중단으로 인한 고가용성 중단`
- DISABLE_REPLICATION_DELAY: `복제 지연으로 인한 고가용성 중단`
- FAILOVER_STARTED: `장애 조치 시작`
- FAILOVER_FAILED: `장애 조치 실패`
- FAILOVER_COMPLETED: `장애 조치 완료`
- DELETED: `삭제됨`
- PAUSED: `일시 중지`
- PAUSED_DUE_TO_TASK: `작업으로 인한 일시 중지`
- MASTER_FAILURE_DETECTION: `마스터 장애 감지` | +| pingInterval | Body | Number | Ping 간격(초) | +| pingType | Body | String | Ping 방식 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "useHighAvailability": false, + "haStatus": "CREATED", + "pingInterval": 1, + "pingType": "pingType-example" +} +``` + +

+
--- -### DB 인스턴스 복제하기 +### 고가용성 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/replicate +PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Replicate | DB 인스턴스 복제하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -#### 요청 +#### 고가용성 사용 시 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록
- 기본값: 원본 DB 인스턴스 값 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: 원본 DB 인스턴스 값 | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄)
- 기본값: 원본 DB 인스턴스 값 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00`
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간
- 기본값: 원본 DB 인스턴스 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` |
예시

```json { - "dbInstanceName": "db-instance-replicate", - "description": "description", - "dbPort": 11000, - "network": { - "availabilityZone": "kr-pub-a" - }, - "storage": { - "stroageSize": 100 - } + "useHighAvailability": false, + "pingInterval": 1 } ``` @@ -1172,147 +1907,138 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 승격하기 +### 고가용성 일시 중지하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/promote +POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Promote | DB 인스턴스 승격하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 재구축하기 +### 고가용성 복구하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/rebuild +POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Rebuild | DB 인스턴스 재구축하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 복원 정보 조회 +### 고가용성 다시 시작하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info +POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | -| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | -| restorableBackups | Body | Array | 복원 가능한 백업 목록 | -| restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | -| restorableBackups.backup.backupName | Body | String | 백업 이름 | -| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | -| restorableBackups.backup.backupType | Body | Enum | 백업 유형
  • `AUTO`: 자동
  • `MANUAL`: 수동
| -| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
  • `BACKING_UP`: 백업 중인 경우
  • `COMPLETED`: 백업이 완료된 경우
  • `DELETING`: 백업이 삭제 중인 경우
  • `DELETED`: 백업이 삭제된 경우
  • `ERROR`: 오류가 발생한 경우
| -| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| restorableBackups.backup.dbVersion | Body | String | DB 엔진 유형 | -| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | -| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | -| restorableBackups.backup.binLogPosition | Body | Number | 바이너리 로그 파일 위치 | -| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | -| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | -| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "oldestRestorableYmdt": "2023-07-09T16:33:33+09:00", - "latestRestorableYmdt": "2023-07-10T15:44:44+09:00", - "restorableBackups": [ - { - "backup": { - "backupId": "145d889a-fe08-474f-8f58-bde576ff96a9", - "backupName": "example-backup-name", - "backupStatus": "COMPLETED", - "dbInstanceId": "dba1be25-9429-4589-9716-7fb6daad7cb9", - "dbInstanceName": "original-db-instance-name", - "dbVersion": "MYSQL_V8028", - "backupType": "MANUAL", - "backupSize": 8299904, - "useBackupLock": true, - "failoverCount": 0, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 367916037, - "createdYmdt": "2023-07-10T15:44:44+09:00", - "updatedYmdt": "2023-07-10T15:46:07+09:00" - }, - "restorableBinLogs": [ - "mysql-bin.000001" - ] - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1321,45 +2047,25 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info --- -### 복원될 마지막 쿼리 조회 +### 고가용성 분리하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query +POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|------|----|-----------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restoreType | Query | Enum | O | 복원 타입 종류

  • `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
  • `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
| - -#### restoreType이 `TIMESTAMP`인 경우 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-------|----------|----|-------------------------------------------| -| restoreYmdt | Query | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +#### 요청 -#### restoreType이 `BINLOG`인 경우 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------|-------|--------|----|--------------------| -| backupId | Query | UUID | O | 복원에 사용할 백업의 식별자 | -| binLogFileName | Query | String | O | 복원에 사용할 바이너리 로그 이름 | -| binLogPosition | Query | Number | O | 복원에 사용할 바이너리 로그 위치 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|----------|--------------------------------------| -| executedYmdt | Body | DateTime | 쿼리 수행 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| lastQuery | Body | String | 마지막 수행 쿼리 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -1371,8 +2077,7 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query "resultMessage": "SUCCESS", "isSuccessful": true }, - "executedYmdt": "2023-03-17T14:02:29+09:00", - "lastQuery": "INSERT INTO `test`.`test`SET @1='0123'" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1381,366 +2086,189 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query --- -### 복원 +### 로그 파일 목록 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/restore +GET /v4.0/db-instances/{dbInstanceId}/log-files ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Restore | DB 인스턴스 복원하기 | - -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restore | Body | Object | O | 복원 정보 객체 | -| restore.restoreType | Body | Enum | O | 복원 타입 종류

  • `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
  • `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
  • `BACKUP`: 기존에 생성한 백업을 이용한 스냅숏 복원 타입
| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
  • 최솟값: `3306`
  • 최댓값: `43306`
| -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
  • 기본값: `false`
| -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
  • 기본값: `3`
  • 최솟값: `1`
  • 최댓값: `600`
| -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
  • 기본값: `false`
| -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
  • 기본값: `false`
| -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
  • 예시: `kr-pub-a`
| -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
  • 최솟값: `20`
  • 최댓값: `2048`
| -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
  • 최솟값: `0`
  • 최댓값: `730`
| -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
  • 기본값: `1800`
  • 최솟값: `0`
  • 최댓값: `21600`
| -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
  • 기본값: `0`
  • 최솟값: `0`
  • 최댓값: `10`
| -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
  • `KR1`: 한국(판교)
  • `KR2`: 한국(평촌)
  • `JP1`: 일본(도쿄)
| -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
  • 기본값: `true`
| -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
  • 예시: `00:00:00`
| -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
  • `HALF_AN_HOUR`: 30분
  • `ONE_HOUR`: 1시간
  • `ONE_HOUR_AND_HALF`: 1시간 30분
  • `TWO_HOURS`: 2시간
  • `TWO_HOURS_AND_HALF`: 2시간 30분
  • `THREE_HOURS`: 3시간
| +이 API는 요청 본문을 요구하지 않습니다. -#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|----------|----|------------------------------------------------------------------------------------------------| -| restore.restoreYmdt | Body | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD)
복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능하다. | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| logFiles | Body | Array | 로그 파일 목록 | +| logFiles.logFileName | Body | String | 로그 파일 이름 | +| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- ERROR
- BINLOG
- GENERAL
- SLOW_QUERY
- AUDIT
- BACKUP | +| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | +| logFiles.createdYmdt | Body | DateTime | 생성 일시 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "TIMESTAMP", - "restoreYmdt": "2023-07-10T15:44:44+09:00" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "logFiles": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) +--- + +### 로그 파일 내보내기 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------------|------|--------|----|--------------------| -| restore.backupId | Body | UUID | O | 복원에 사용할 백업의 식별자 | -| restore.binLog | Body | Object | O | 바이너리 로그 정보 객체 | -| restore.binLog.binLogFileName | Body | String | O | 복원에 사용할 바이너리 로그 이름 | -| restore.binLog.binLogPosition | Body | Number | O | 복원에 사용할 바이너리 로그 위치 | +```http +POST /v4.0/db-instances/{dbInstanceId}/log-files/export +``` -* 바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. +#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| logFileNames | Body | Array | O | 로그 파일 이름 목록 | +| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BINLOG", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36", - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 1234567 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "logFileNames": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

-
- -#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|------|------------------------------|-----------------| -| restore.backupId | Body | UUID | O(restoreType이 `BACKUP`인 경우) | 복원에 사용할 백업의 식별자 | +
+#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BACKUP", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - - --- -### 오브젝트 스토리지로부터 복원 +### 로그 파일 내용 보기 ```http -POST /v4.0/db-instances/restore-from-obs +GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------------|-------------------------| -| RDSforMySQL:DbInstance.RestoreFromObs | DB 인스턴스 오브젝트 스토리지로부터 복원 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|----------------------------------------------------------------------------------------| -| restore | Body | Object | O | 복원 정보 객체 | -| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | -| restore.username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | -| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | -| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
  • 최솟값: `3306`
  • 최댓값: `43306`
| -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
  • 기본값: `false`
| -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
  • 기본값: `3`
  • 최솟값: `1`
  • 최댓값: `600`
| -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
  • 기본값: `false`
| -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
  • 기본값: `false`
| -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
  • 예시: `kr-pub-a`
| -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
  • 예시: `General SSD`
| -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
  • 최솟값: `20`
  • 최댓값: `2048`
| -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
  • 최솟값: `0`
  • 최댓값: `730`
| -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
  • 기본값: `1800`
  • 최솟값: `0`
  • 최댓값: `21600`
| -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
  • 기본값: `0`
  • 최솟값: `0`
  • 최댓값: `10`
| -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
  • `KR1`: 한국(판교)
  • `KR2`: 한국(평촌)
  • `JP1`: 일본(도쿄)
| -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
  • 기본값: `true`
| -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
  • 예시: `00:00:00`
| -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
  • `HALF_AN_HOUR`: 30분
  • `ONE_HOUR`: 1시간
  • `ONE_HOUR_AND_HALF`: 1시간 30분
  • `TWO_HOURS`: 2시간
  • `TWO_HOURS_AND_HALF`: 2시간 30분
  • `THREE_HOURS`: 3시간
| +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| logFileName | URL | UUID | O | 로그 파일 이름 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| content | Body | String | 로그 파일 내용 (최대 65533 bytes) |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbVersion": "MYSQL_V8028", - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "tenantId":"tenant-id", - "username":"username", - "password":"password", - "targetContainer":"targetContainer", - "objectPath":"objectPath" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "content": "content-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - - --- - -### DB 인스턴스 삭제 보호 설정 변경하기 +### DB 인스턴스 유지 관리 목록 보기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection +GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| type | Query | String | X | | +| statuses | Query | String | X | | +| category | Query | String | X | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 유지 관리 목록 갯수 | +| maintenances | Body | Array | 유지 관리 목록 | +| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| maintenances.description | Body | String | 유지 관리 설명 | +| maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| maintenances.payload | Body | Object | 유지 관리 타입에 따른 Payload | +| maintenances.required | Body | Boolean | 유지 관리 필수 여부 | +| maintenances.deadlineYmdt | Body | DateTime | 유지 관리 강제 적용 일시 | +| maintenances.status | Body | Enum | 유지 관리 상태
- PENDING: `대기`
- READY: `준비`
- RUNNING: `실행 중`
- COMPLETED: `완료`
- FAILED: `실패`
- EXCLUDED: `제외`
- DELETED: `삭제`
- UNKNOWN | +| maintenances.executionType | Body | Enum | 유지 관리 실행 타입
- SCHEDULED: `예약 실행 (유지 관리 기간 자동 실행)`
- MANUAL: `수동 실행 (즉시 실행)`
- FORCED: `강제 실행 (데드라인 초과 자동 실행)` | +| maintenances.addedYmdt | Body | DateTime | 유지 관리 스케줄 등록 일시 | +| maintenances.executionStartedYmdt | Body | DateTime | 유지 관리 시작 일시 | +| maintenances.executionCompletedYmdt | Body | DateTime | 유지 관리 종료 일시 |
예시

@@ -1751,7 +2279,13 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "totalCounts": 1, + "maintenances": [ + { + "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -1760,178 +2294,250 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection --- -### 고가용성 수정하기 +### DB 인스턴스 유지 관리 즉시 실행하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/high-availability +POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Modify | 고가용성 수정하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload | -#### 요청 +

예시 +

+ +```json +{ + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|---------|----|------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 고가용성 다시 시작하기 +### DB 인스턴스 유지 관리 예약하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume +POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------------|--------------| -| RDSforMySQL:HighAvailability.Resume | 고가용성 다시 시작하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 고가용성 일시 중지하기 +### DB 인스턴스 유지 관리 삭제하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause +DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|--------------| -| RDSforMySQL:HighAvailability.Pause | 고가용성 일시 중지하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| maintenanceId | URL | UUID | O | 유지 관리 아이디 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 고가용성 복구하기 +### 네트워크 정보 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair +GET /v4.0/db-instances/{dbInstanceId}/network-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Repair | 고가용성 복구하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | +| subnet | Body | Object | 서브넷 객체 | +| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnet.subnetCidr | Body | String | 서브넷의 CIDR | +| endPoints | Body | Array | 접속 정보 목록 | +| endPoints.domain | Body | String | 도메인 | +| endPoints.ipAddress | Body | String | IP 주소 | +| endPoints.endPointType | Body | String | 접속 정보 타입 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "availabilityZone": "availabilityZone-example", + "subnet": { + "subnetId": "subnetId-example", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example" + }, + "endPoints": [ + { + "endPointType": "endPointType-example" + } + ] +} +``` + +

+
--- -### 고가용성 분리하기 +### 네트워크 정보 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/split +PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Split | 고가용성 분리하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "usePublicAccess": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 데이터 스토리지 정보 보기 +### DB 인스턴스 승격하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/storage-info +POST /v4.0/db-instances/{dbInstanceId}/promote ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|---------|--------------------------------------------------------------------------------------| -| storageType | Body | Enum | 데이터 스토리지 타입 | -| storageSize | Body | Number | 데이터 스토리지 크기(GB) | -| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- `DETACHED`: 부착되지 않음
- `ATTACHED`: 부착됨
- `DELETED`: 삭제됨 | -| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | -| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | -| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -1943,89 +2549,150 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "General SSD", - "storageSize": 20, - "storageStatus": "ATTACHED", - "storageAutoscale": { - "useStorageAutoscale": true, - "threshold": 80, - "maxStorageSize": 100, - "cooldownTime": 10 - } + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### 데이터 스토리지 정보 수정하기 +### DB 인스턴스 재구축하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/storage-info +POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: 현재값
- 최댓값: `2048` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 백업 정보 보기 +### DB 인스턴스 복제하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/backup-info +POST /v4.0/db-instances/{dbInstanceId}/replicate ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부 | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | X | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | X | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|---------|----------------| -| backupPeriod | Body | Number | 백업 보관 기간(일) | -| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | -| backupRetryCount | Body | Number | 백업 재시도 횟수 | -| replicationRegion | Body | Enum | 백업 복제 리전 | -| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | -| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2037,112 +2704,108 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "backupPeriod": 1, - "ftwrlWaitTimeout": 1800, - "backupRetryCount": 0, - "replicationRegion": null, - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### 백업 정보 수정하기 +### DB 인스턴스 재시작하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/backup-info +POST /v4.0/db-instances/{dbInstanceId}/restart ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | -#### 요청 +
예시 +

+ +```json +{ + "useOnlineFailover": false, + "executeBackup": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------------------------|------|---------|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "backupPeriod": 5, - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndBgnTime": "01:00:00", - "backupWndDuration": "TWO_HOURS" - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 네트워크 정보 보기 +### DB 인스턴스 복원 정보 조회 ```http -GET /v4.0/db-instances/{dbInstanceId}/network-info +GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------------------------------------------------------------------------------------------------------------------------------| -| availabilityZone | Body | Enum | DB 인스턴스를 생성할 가용성 영역 | -| subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | UUID | 서브넷의 식별자 | -| subnet.subnetName | Body | UUID | 서브넷을 식별할 수 있는 이름 | -| subnet.subnetCidr | Body | UUID | 서브넷의 CIDR | -| endPoints | Body | Array | 접속 정보 목록 | -| endPoints.domain | Body | String | 도메인 | -| endPoints.ipAddress | Body | String | IP 주소 | -| endPoints.endPointType | Body | Enum | 접속 정보 타입
-`EXTERNAL`: 외부 접속 도메인
-`INTERNAL`: 내부 접속 도메인
-`PUBLIC`: (Deprecated) 외부 접속 도메인
-`PRIVATE`: (Deprecated) 내부 접속 도메인 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | +| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | +| restorableBackups | Body | Array | 복원 가능한 백업 목록 | +| restorableBackups.backup | Body | Object | 백업 정보 객체 | +| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupName | Body | String | 백업 이름 | +| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | +| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | +| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | +| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | +| restorableBackups.backup.binLogPosition | Body | Object | 바이너리 로그 파일 위치 | +| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | +| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | +| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 |
예시

@@ -2154,17 +2817,11 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "kr-pub-a", - "subnet": { - "subnetId": "bd453789-34ae-416c-9f78-05b9e43a46be", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/16" - }, - "endPoints": [ + "oldestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "restorableBackups": [ { - "domain": "ea548a78-d85f-43b4-8ddf-c88d999b9905.internal.kr1.mysql.rds.nhncloudservice.com", - "ipAddress": "192.168.0.2", - "endPointType": "INTERNAL" + "restorableBinLogs": [] } ] } @@ -2175,67 +2832,26 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info --- -### 네트워크 정보 수정하기 - -```http -PUT /v4.0/db-instances/{dbInstanceId}/network-info -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### DB 사용자 목록 보기 +### 복원될 마지막 쿼리 조회 ```http -GET /v4.0/db-instances/{dbInstanceId}/db-users +GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|---------------------| -| RDSforMySQL:DbInstanceUser.List | DB 인스턴스 내 사용자 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|-----------------------------------------------------------------------------------------------------------------------------| -| dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | -| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | -| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | -| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `UPDATING`: 수정 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbUsers.authenticationPlugin | Body | Enum | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| dbUsers.tlsOption | Body | Enum | TLS Option
- NONE
- SSL
- X509 | -| dbUsers.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbUsers.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| executedYmdt | Body | DateTime | 쿼리 수행 일시 | +| lastQuery | Body | String | 마지막 수행 쿼리 |

예시

@@ -2247,19 +2863,8 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbUsers": [ - { - "dbUserId": "4b3d530b-fd02-4d59-a620-83d019a67bbb", - "dbUserName": "db-user", - "host": "%", - "authorityType": "DDL", - "dbUserStatus": "STABLE", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE", - "createdYmdt": "2023-03-17T14:02:29+09:00", - "updatedYmdt": "2023-03-17T14:02:31+09:00" - } - ] + "executedYmdt": "2023-12-31T15:00:00+09:00", + "lastQuery": "lastQuery-example" } ``` @@ -2268,45 +2873,138 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users --- -### DB 사용자 생성하기 +### DB 인스턴스 복원 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-users +POST /v4.0/db-instances/{dbInstanceId}/restore ``` +#### 공통 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미입력 시 원본 인스턴스의 사양이 적용됩니다. | +| dbPort | Body | Number | X | DB 포트 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | X | 스토리지 정보 객체. 미입력 시 원본 인스턴스의 스토리지 설정이 적용됩니다. | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미입력 시 원본 인스턴스의 스토리지 타입이 적용됩니다. | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미입력 시 원본 인스턴스의 스토리지 크기가 적용됩니다.
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | X | 네트워크 정보 객체. 미입력 시 원본 인스턴스의 네트워크 설정이 적용됩니다. | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미입력 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미입력 시 랜덤 선택 | +| backup | Body | Object | X | 백업 정보 객체. 미입력 시 원본 인스턴스의 백업 설정이 적용됩니다. | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미입력 시 원본 인스턴스의 백업 보관 기간이 적용됩니다.
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미입력 시 원본 인스턴스의 백업 스케쥴이 적용됩니다. | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.restoreType | Body | Enum | O | 복원 타입
- TIMESTAMP: `복원 가능한 시간 이내의 시간을 이용한 시점 복원`
- BINLOG: `복원 가능한 바이너리 로그 위치를 이용한 시점 복원`
- BACKUP: `기존에 생성한 백업을 이용한 스냅숏 복원` | +| restore.binLog.binLogFileName | Body | String | X | 복원에 사용할 바이너리 로그 이름 | +| restore.binLog.binLogPosition | Body | Object | X | 복원에 사용할 바이너리 로그 위치 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미입력 시 원본 인스턴스의 파라미터 그룹이 적용됩니다. | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록. 미입력 시 원본 인스턴스의 보안 그룹이 적용됩니다. | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -#### 필요 권한 +#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Create | DB 인스턴스 내 사용자 생성하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.restoreYmdt | Body | DateTime | X | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -#### 요청 +복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|-------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserName | Body | String | O | DB 사용자 계정 이름
- 최소 길이: `1`
- 최대 길이: `32` | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| host | Body | String | O | DB 사용자 계정의 호스트명
- 예시: `1.1.1.%` | -| authorityType | Body | Enum | O | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | +#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | +| restore.binLog | Body | Object | X | 복원에 사용할 바이너리 로그 정보 객체 | + +바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. + +#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 설정할 수 있습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 |

예시

```json { - "dbUserName": "db-user", - "dbPassword": "password", - "host": "1.1.1.%", - "authorityType": "CRUD", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "useHighAvailability": false, + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "restoreType": "TIMESTAMP", + "binLog": { + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + } + } + }, + "useDefaultNotification": false, + "useSlowQueryAnalysis": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false } ``` @@ -2315,117 +3013,133 @@ POST /v4.0/db-instances/{dbInstanceId}/db-users #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 사용자 수정하기 +### DB 인스턴스 시작하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +POST /v4.0/db-instances/{dbInstanceId}/start ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Modify | DB 인스턴스 내 사용자 수정하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|-------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | -| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `16` | -| authorityType | Body | Enum | X | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | +#### 응답 -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 수정할 수 있습니다. -> `authenticationPlugin`의 값은 `dbPassword`와 동시에 수정을 해야 합니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "authorityType": "DDL" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 삭제하기 +### DB 인스턴스 정지하기 ```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +POST /v4.0/db-instances/{dbInstanceId}/stop ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Delete | DB 인스턴스 내 사용자 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 스키마 목록 보기 +### 스토리지 정보 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/db-schemas +GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|---------------------| -| RDSforMySQL:DbInstanceSchema.List | DB 인스턴스 내 스키마 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|------------------------------------------------------------------------------------------------------| -| dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | -| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | -| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbSchemas.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageType | Body | String | 데이터 스토리지 타입 | +| storageSize | Body | Number | 데이터 스토리지 크기(GB) | +| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- DELETED: `삭제됨`
- PENDING_DELETION: `삭제 유예됨`
- DELETION_RESERVED: `삭제 예약됨 (스냅샷 정리 대기)`
- DETACHED: `해제됨`
- ATTACHED: `할당됨` | +| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | +| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | +| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | +| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) |
예시

@@ -2437,14 +3151,15 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSchemas": [ - { - "dbSchemaId": "7c9a94b8-86c1-435d-8af2-82a5e9d53fd4", - "dbSchemaName": "schema", - "dbSchemaStatus": "STABLE", - "createdYmdt": "2023-03-20T13:37:45+09:00" - } - ] + "storageType": "storageType-example", + "storageSize": 1, + "storageStatus": "DELETED", + "storageAutoscale": { + "useStorageAutoscale": false, + "threshold": 1, + "maxStorageSize": 1, + "cooldownTime": 1 + } } ``` @@ -2453,93 +3168,90 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas --- -### DB 스키마 생성하기 +### 스토리지 정보 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-schemas +PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceSchema.Create | DB 인스턴스 내 스키마 생성하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaName | Body | String | O | DB 스키마 이름 | +#### 공통 요청 -#### 응답 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최댓값: `2048` | +| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +#### 스토리지 자동 확장 사용 시 ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -### DB 스키마 삭제하기 +

예시 +

-```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +```json +{ + "storageSize": 1, + "storageAutoscale": { + "useStorageAutoscale": false + } +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceSchema.Delete | DB 인스턴스 내 스키마 삭제하기 | +

+
-#### 요청 +#### 응답 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | +
예시 +

-#### 응답 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 로그 파일 목록 보기 +## DB 인스턴스 그룹 + +### DB 인스턴스 그룹 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/log-files +GET /v4.0/db-instance-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|-----------------------| -| RDSforMySQL:DbInstanceLog.List | DB 인스턴스 내 로그 파일 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|-------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileTypes | Query | Array | X | 로그 파일 타입 종류 목록
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| logFiles | Body | Array | 로그 파일 목록 | -| logFiles.logFileName | Body | String | 로그 파일 이름 | -| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | -| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | -| logFiles.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2551,12 +3263,9 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files "resultMessage": "SUCCESS", "isSuccessful": true }, - "logFiles": [ + "dbInstanceGroups": [ { - "logFileName": "xtra_full.log-20230317", - "logFileType": "BACKUP", - "logFileSize": 4096, - "createdYmdt": "2023-03-17T14:02:29+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2567,107 +3276,81 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files --- -### 로그 파일 내보내기 +### DB 인스턴스 그룹 상세 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/log-files/export +GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. -| 권한명 | 설명 | -|--------------------------------------------------|----------------------| -| RDSforMySQL:DbInstanceLog.Export | DB 인스턴스 내 로그 파일 내보내기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|--------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileNames | Body | Array | O | 로그 파일 이름 목록
- 최소 크기: `1` | -| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "logFileNames": ["xtra_full.log-20230317"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "logs/backup" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +## DB 인스턴스 사양 -### 백업 목록 조회 +### DB 인스턴스 사양 목록 보기 ```http -GET /v4.0/backups +GET /v4.0/db-flavors ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Backup.List | 백업 목록 조회 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|--------|----|----------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| backupType | Query | Enum | X | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동
- 기본값: 전체 | -| dbInstanceId | Query | UUID | X | 원본 DB 인스턴스의 식별자 | -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|-----------------------------------| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | UUID | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태 | -| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형 | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -2679,308 +3362,183 @@ GET /v4.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "backups": [ + "dbFlavors": [ { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupSize": 4996786, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" + "vcpus": 1 } ] } ```

-
- ---- - -### 백업 생성하기 - -```http -POST /v4.0/backups -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Create | 백업 생성하기 | - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|--------|----|------------------------------------------------------------| -| backupName | Body | String | O | 백업을 식별할 수 있는 이름 | -| backupMethodType | Body | Enum | O | 백업 방식 타입 종류
- `FULL`: 전체 백업
- `INCREMENTAL`: 증분 백업 | - -#### 전체 백업(backupMethodType이 `FULL`인 경우) +
-| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|--------------| -| dbInstanceId | Body | UUID | O | DB 인스턴스의 식별자 | +--- +## 가용성 영역 -
예시 -

+### 가용성 영역 목록 보기 -```json -{ - "backupName": "example-backup-name", - "backupMethodType": "FULL", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd" -} +```http +GET /v4.0/availability-zones ``` -

-
+#### 요청 -#### 증분 백업(backupMethodType이 `INCREMENTAL`인 경우) +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|------------| -| baseBackupId | Body | UUID | O | 기준 백업의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZones | Body | Array | 가용성 영역 목록 | +| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | +| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | +| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 |
예시

```json { - "backupName": "example-backup-name", - "backupMethodType": "INCREMENTAL", - "baseBackupId": "3ae7914f-9b42-4729-b125-87417b72cf36" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "availabilityZones": [ + { + "zoneState": { + "available": false + } + } + ] } ```

- -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 백업 내보내기 +## 네트워크 + +### 서브넷 목록 보기 ```http -POST /v4.0/backups/{backupId}/export +GET /v4.0/network/subnets ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Export | 백업 내보내기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |
예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - -> [주의] -> 수동 백업의 경우 백업이 수행된 DB 인스턴스가 존재하지 않으면, 백업을 오브젝트 스토리지로 내보낼 수 없습니다. - --- -### 백업 복원하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v4.0/backups/{backupId}/restore +GET /v4.0/storage-types ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------| -| RDSforMySQL:Backup.Restore | 백업 복원하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Integer | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교)
- `KR2`: 한국(평촌)
- `JP1`: 일본(도쿄) | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |
예시

```json - { - "dbInstanceName": "db-instance-restore", - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbPort": 10000, - "parameterGroupId": "132d383c-38e3-468a-a826-5e9a8fff15d0", - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "storageTypes": [] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 백업 삭제하기 +## 모니터링 + +### 통계 정보 조회 ```http -DELETE /v4.0/backups/{backupId} +GET /v4.0/metric-statistics ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Delete | 백업 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | - -### DB 보안 그룹 목록 보기 +### Metric 목록 보기 ```http -GET /v4.0/db-security-groups +GET /v4.0/metrics ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|----------------| -| RDSforMySQL:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-----------------------------------| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -2992,14 +3550,9 @@ GET /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "metrics": [ { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2022-02-19T19:18:13+09:00" + "unit": "unit-example" } ] } @@ -3010,48 +3563,44 @@ GET /v4.0/db-security-groups --- -### DB 보안 그룹 상세 보기 +## 백업 -```http -GET /v4.0/db-security-groups/{dbSecurityGroupId} -``` +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | -#### 필요 권한 +### 백업 목록 조회 -| 권한명 | 설명 | -|-------------------------------------------------|----------------| -| RDSforMySQL:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | +```http +GET /v4.0/backups +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|----------|--------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다.
- `PORT`: 지정된 포트값으로 설정됩니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | 허용할 트래픽의 원격 소스 | -| rules.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| rules.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3063,30 +3612,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "rules": [ - { - "ruleId": "17c88ef6-95f1-4678-84f9-fee1b22e250d", - "description": "description", - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } - ], - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } + "totalCounts": 1, + "backups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -3095,56 +3626,30 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 생성하기 +### 백업 생성하기 ```http -POST /v4.0/db-security-groups +POST /v4.0/backups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | +| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | +| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "rules": [ - { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0" - } - ] + "backupName": "backupName", + "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "backupMethodType": "FULL" } ``` @@ -3153,48 +3658,48 @@ POST /v4.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|------|---------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | - ---- - -### DB 보안 그룹 수정하기 - -```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|-----------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

+--- + +### 백업 삭제하기 + +```http +DELETE /v4.0/backups/{backupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3205,39 +3710,52 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### DB 보안 그룹 삭제하기 +### 백업 단건 조회 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/backups/{backupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backup | Body | Object | 백업 상세 정보 | +| backup.backupId | Body | String | 백업의 식별자 | +| backup.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| backup.dbVersion | Body | Enum | DB 엔진 버전 | +| backup.utilVersion | Body | String | 유틸리티 버전 | +| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | +| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | +| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | +| backup.backupSize | Body | Number | 백업의 크기(Byte) | +| backup.isReplicable | Body | Boolean | 복제 가능 여부 | +| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | +| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | +| backup.createdYmdt | Body | DateTime | 생성 일시 | +| backup.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3248,6 +3766,26 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true + }, + "backup": { + "backupId": "backupId-example", + "regionCode": "KR4", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupMethodType": "FULL", + "backupFileType": "XBSTREAM", + "backupSize": 1, + "isReplicable": false, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } } ``` @@ -3257,48 +3795,33 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 규칙 생성하기 +### 백업 내보내기 ```http -POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v4.0/backups/{backupId}/export ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT", - "minPort": 10000, - "maxPort": 10000 - }, - "cidr": "0.0.0.0/0" + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -3307,130 +3830,179 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### DB 보안 그룹 규칙 수정하기 - -```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleId | URL | UUID | O | DB 보안 그룹 규칙의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값을 필요로 하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. -

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "DB_PORT" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "0.0.0.0/0" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 보안 그룹 규칙 삭제하기 +### 백업 복원하기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v4.0/backups/{backupId}/restore +``` + +#### 공통 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | +| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 삭제하기 | +

+
-#### 요청 +#### 응답 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|-------|----|---------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleIds | Query | Array | O | DB 보안 그룹 규칙의 식별자 목록 | +
예시 +

-#### 응답 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -## 파라미터 그룹 +## 사용자 그룹 -### 파라미터 그룹 목록 보기 +### 사용자 그룹 목록 보기 ```http -GET /v4.0/parameter-groups +GET /v4.0/user-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.List | 파라미터 그룹 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------|-------|------|----|----------| -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-------------------------------------------------------------------| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3442,15 +4014,10 @@ GET /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroups": [ + "totalCounts": 1, + "userGroups": [ { - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "createdYmdt": "2023-02-31T15:28:17+09:00", - "updatedYmdt": "2023-02-31T15:28:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -3459,50 +4026,41 @@ GET /v4.0/parameter-groups

- --- -### 파라미터 그룹 상세 보기 +### 사용자 그룹 생성하기 ```http -GET /v4.0/parameter-groups/{parameterGroupId} +POST /v4.0/user-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.Get | 파라미터 그룹 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|--------------------------------------------------------------------------------------------------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | UUID | 파라미터 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- `CLIENT`: client
- `MYSQL`: mysql
- `MYSQLD`: mysqld | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- `VARIABLE`: 언제든 수정 가능
- `CONSTANT`: 수정 불가능
- `INIT_VARIABLE`: DB 인스턴스 생성 시에만 수정 가능 | -| parameters.applyType | Body | Enum | 적용 타입
- `SESSION`: 세션 적용
- `FILE`: 설정 파일 적용(재시작 필요)
- `BOTH`: 전체(재시작 필요) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 |
예시

@@ -3514,143 +4072,112 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "parameters": [ - { - "parameterId": "fa040b5e-f29f-46de-8f0d-bba4cb82887a", - "parameterFileGroup": "client", - "parameterName": "socket", - "fileParameterName": "socket", - "value": "/home/tcrds/db/mysql/tmp/mysql.sock", - "defaultValue": "/home/tcrds/db/mysql/tmp/mysql.sock", - "allowedValue": "", - "updateType": "CONSTANT", - "applyType": "BOTH" - } - ], - "createdYmdt": "2023-03-13T11:02:28+09:00", - "updatedYmdt": "2023-03-13T11:02:28+09:00" + "userGroupId": "userGroupId-example" } ```

- --- -### 파라미터 그룹 생성하기 +### 사용자 그룹 삭제하기 ```http -POST /v4.0/parameter-groups +DELETE /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Create | 파라미터 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | - -
예시 -

- -```json -{ - "parameterGroupName": "parameter-group", - "dbVersion": "MYSQL_V8028" -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 복사하기 +### 사용자 그룹 상세 보기 ```http -POST /v4.0/parameter-groups/{parameterGroupId}/copy +GET /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. -| 권한명 | 설명 | -|-------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Copy | 파라미터 그룹 복사하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

```json { - "parameterGroupName": "parameter-group-copy", - "description": "copy" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ + { + "memberId": "memberId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | - --- -### 파라미터 그룹 수정하기 +### 사용자 그룹 수정하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId} +PUT /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |
예시

```json { - "parameterGroupName": "parameter-group" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ``` @@ -3661,6 +4188,33 @@ PUT /v4.0/parameter-groups/{parameterGroupId} 이 API는 응답 본문을 반환하지 않습니다. +--- + +## 알림 그룹 + +### 알림 그룹 목록 보기 + +```http +GET /v4.0/notification-groups +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +

예시

@@ -3670,7 +4224,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -3679,38 +4238,34 @@ PUT /v4.0/parameter-groups/{parameterGroupId} --- -### 파라미터 수정하기 +### 알림 그룹 생성하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/parameters +POST /v4.0/notification-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------|------|--------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ - { - "parameterId": "3abac558-7274-44e1-9f4a-f100f53f67ba", - "value": "0" - } - ] + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], + "userGroupIds": [] } ``` @@ -3719,7 +4274,9 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3730,7 +4287,8 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3739,27 +4297,57 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters --- -### 파라미터 그룹 재설정하기 +### 알림 그룹 삭제하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/reset +DELETE /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. -| 권한명 | 설명 | -|--------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | +--- + +### 알림 그룹 상세 보기 + +```http +GET /v4.0/notification-groups/{notificationGroupId} +``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3770,7 +4358,24 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ + { + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3779,61 +4384,67 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset --- -### 파라미터 그룹 삭제하기 +### 알림 그룹 수정하기 ```http -DELETE /v4.0/parameter-groups/{parameterGroupId} +PUT /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 사용자 그룹 +## 이벤트 -### 사용자 그룹 목록 보기 +### 이벤트 카테고리 -```http -GET /v4.0/user-groups -``` +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. + +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -#### 필요 권한 +### 구독 가능한 이벤트 코드 목록 보기 -| 권한명 | 설명 | -|--------------------------------------------|--------------| -| RDSforMySQL:UserGroup.List | 사용자 그룹 목록 보기 | +```http +GET /v4.0/event-codes +``` #### 요청 @@ -3841,13 +4452,11 @@ GET /v4.0/user-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|-----------------------------------| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |
예시

@@ -3859,12 +4468,9 @@ GET /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "eventCodes": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "eventCategoryType": "ALL" } ] } @@ -3875,37 +4481,30 @@ GET /v4.0/user-groups --- -### 사용자 그룹 상세 보기 +### 이벤트 목록 조회 ```http -GET /v4.0/user-groups/{userGroupId} +GET /v4.0/events ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|--------------| -| RDSforMySQL:UserGroup.Get | 사용자 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|----------|-----------------------------------------------------------------------------------------------------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
`ENTIRE`: 프로젝트 멤버 전체를 포함하는 사용자 그룹
`INDIVIDUAL_MEMBER`: 특정 프로젝트 멤버를 포함하는 사용자 그룹 | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

@@ -3917,16 +4516,12 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "userGroupTypeCode": "INDIVIDUAL_MEMBER", - "members": [ + "totalCounts": 1, + "events": [ { - "memberId": "1321e759-2ef3-4b85-9921-b13e918b24b5" + "eventYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + ] } ``` @@ -3935,87 +4530,99 @@ GET /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 생성하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v4.0/user-groups +GET /v4.0/event-subscriptions ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Create | 사용자 그룹 생성하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|-----------------------------------------------------------| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록
`selectAll`이 true인 경우 해당 필드 값은 무시됨 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |

예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } ] } ``` -```json -{ - "userGroupName": "dev-team", - "selectAll": true -} -``` -

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------------|------|------|-------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | - --- -### 사용자 그룹 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v4.0/user-groups/{userGroupId} +POST /v4.0/event-subscriptions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Modify | 사용자 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|----------------------------------------------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | -| userGroupName | Body | String | X | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 유무
true인 경우 해당 그룹은 전체 멤버에 대해 설정됨 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5", - "f9064b09-2b15-442e-a4b0-3a5a2754555e" - ] + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ``` @@ -4024,7 +4631,9 @@ PUT /v4.0/user-groups/{userGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -4035,7 +4644,8 @@ PUT /v4.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -4044,76 +4654,121 @@ PUT /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 삭제하기 +### 이벤트 구독 삭제하기 ```http -DELETE /v4.0/user-groups/{userGroupId} +DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Delete | 사용자 그룹 삭제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v4.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 알림 그룹 +## 작업 정보 -### 알림 그룹 목록 보기 +### 작업 상태 -```http -GET /v4.0/notification-groups -``` +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | -#### 필요 권한 +### 작업 정보 상세 보기 -| 권한명 | 설명 | -|----------------------------------------------------|-------------| -| RDSforMySQL:NotificationGroup.List | 알림 그룹 목록 보기 | +```http +GET /v4.0/jobs/{jobId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------------|------|----------|-----------------------------------| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4125,17 +4780,15 @@ GET /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ { - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "resourceId": "resourceId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4144,43 +4797,32 @@ GET /v4.0/notification-groups --- -### 알림 그룹 상세 보기 +## 파라미터 그룹 + +### 파라미터 그룹 목록 보기 ```http -GET /v4.0/notification-groups/{notificationGroupId} +GET /v4.0/parameter-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|-------------| -| RDSforMySQL:NotificationGroup.Get | 알림 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------------|------|----------|-----------------------------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 파라미터 그룹 수 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4192,25 +4834,12 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "dbInstances": [ - { - "dbInstanceId": "ed5cb985-526f-4c54-9ae0-40288593de65", - "dbInstanceName": "database" - } - ], - "userGroups": [ + "totalCounts": 1, + "parameterGroups": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + ] } ``` @@ -4219,43 +4848,28 @@ GET /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v4.0/notification-groups +POST /v4.0/parameter-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Create | 알림 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------------| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "notificationGroupName": "dev-team-noti", - "notifyEmail": false, - "isEnable": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65" - ], - "userGroupIds": [ - "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0" - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -4264,55 +4878,84 @@ POST /v4.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|------|------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "parameterGroupId": "parameterGroupId-example" +} +``` + +

+
--- -### 알림 그룹 수정하기 +### 파라미터 그룹 삭제하기 ```http -PUT /v4.0/notification-groups/{notificationGroupId} +DELETE /v4.0/parameter-groups/{parameterGroupId} ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Modify | 알림 그룹 수정하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부 | -| notifySms | Body | Boolean | X | SMS 알림 여부 | -| isEnabled | Body | Boolean | X | 활성화 여부 | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +#### 응답 -
예시 -

+이 API는 응답 본문을 반환하지 않습니다. -```json -{ - "notifyEmail": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65", - "d51b7da0-682f-47ff-b588-b739f6adc740" - ] -} +--- + +### 파라미터 그룹 상세 보기 + +```http +GET /v4.0/parameter-groups/{parameterGroupId} ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4323,7 +4966,19 @@ PUT /v4.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ + { + "applyType": "BOTH" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4332,73 +4987,71 @@ PUT /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 수정하기 ```http -DELETE /v4.0/notification-groups/{notificationGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Delete | 알림 그룹 삭제하기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 모니터링 +이 API는 응답 본문을 반환하지 않습니다. -### Metric 목록 보기 +--- + +### 파라미터 그룹 복사하기 ```http -GET /v4.0/metrics +POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Metric.List | 통계 정보 조회 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|--------|-----------| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | Enum | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -4410,12 +5063,7 @@ GET /v4.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "measureName": "CPU_USAGE", - "unit": "%" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4424,62 +5072,29 @@ GET /v4.0/metrics --- -### 통계 정보 조회 +### 파라미터 수정하기 ```http -GET /v4.0/metric-statistics +PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Metric.List | 통계 정보 조회 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|----------|----|-----------------------------------| -| dbInstanceId | Query | UUID | O | DB 인스턴스의 식별자 | -| measureNames | Query | Array | O | 조회 지표 목록
- 최소 크기: `1` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| interval | Query | Number | X | 조회 간격 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|-----------|----------| -| metricStatistics | Body | Array | 통계 정보 목록 | -| metricStatistics.measureName | Body | Enum | 측정 항목 유형 | -| metricStatistics.unit | Body | String | 측정값 단위 | -| metricStatistics.values | Body | Array | 측정값 목록 | -| metricStatistics.values.timestamp | Body | Timestamp | 측정 시간 | -| metricStatistics.values.value | Body | Object | 측정값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "metricStatistics": [ + "modifiedParameters": [ { - "measureName": "MYSQL_STATUS", - "unit": "", - "values": [ - [ - 1679298540, - "1" - ], - [ - 1679298600, - "1" - ], - [ - 1679298660, - "1" - ] - ] + "value": "value-example" } ] } @@ -4488,64 +5103,53 @@ GET /v4.0/metric-statistics

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 +### 파라미터 그룹 재설정하기 -### 이벤트 카테고리 +```http +PUT /v4.0/parameter-groups/{parameterGroupId}/reset +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 이벤트 목록 조회 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -```http -GET /v4.0/events -``` +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 프로젝트 정보 -#### 필요 권한 +### 프로젝트 멤버 목록 보기 -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMySQL:Event.List | 이벤트 목록 보기 | +```http +GET /v4.0/project/members +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | O | 조회할 목록의 페이지
- 최솟값: `1` | -| size | Query | Number | O | 조회할 목록의 페이지 크기
- 최솟값: `1`
- 최댓값: `100` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| eventCategoryType | Query | Enum | O | 조회할 이벤트 카테고리 유형
- `ALL`: 전체
- `INSTANCE`: DB 인스턴스
- `BACKUP`: 백업
- `DB_SECURITY_GROUP`: DB 보안 그룹
- `TENANT`: 테넌트 | -| sourceId | Query | String | X | 이벤트가 발생한 대상 리소스의 식별자 | -| keyword | Query | String | X | 이벤트 메시지에 포함된 문자열 검색어 | -| ascendingOrder | Query | Enum | X | 이벤트 메시지 정렬 순서
- `ASC`: 오름차순
- `DESC`: 내림차순
- 기본값: `DESC` | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|---------------------------------------| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메시지 목록 | -| events.messages.langCode | Body | String | 언어 코드 | -| events.messages.message | Body | String | 이벤트 메시지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -4557,32 +5161,9 @@ GET /v4.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 28, - "events": [ + "members": [ { - "eventCategoryType": "INSTANCE", - "eventCode": "INSTC_02_01", - "sourceId": "76f00947-356e-4a20-8922-428368cc45ed", - "sourceName": "db-instance", - "messages": [ - { - "langCode": "EN", - "message": "DB instance started" - }, - { - "langCode": "JA", - "message": "DBインスタンスの起動" - }, - { - "langCode": "KO", - "message": "DB 인스턴스 시작" - }, - { - "langCode": "ZH", - "message": "DB instance started" - } - ], - "eventYmdt": "2023-03-20T16:31:59+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -4593,29 +5174,23 @@ GET /v4.0/events --- -### 구독 가능한 이벤트 코드 목록 보기 +### 리전 목록 보기 ```http -GET /v4.0/event-codes +GET /v4.0/project/regions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMySQL:Event.List | 이벤트 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|-------|-------------| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

@@ -4627,10 +5202,9 @@ GET /v4.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "regions": [ { - "eventCode": "INSTC_05_01", - "eventCategoryType": "INSTANCE" + "isEnabled": false } ] } @@ -4640,3 +5214,4 @@ GET /v4.0/event-codes

--- + diff --git a/ko/api-guide-v4.0.md b/ko/api-guide-v4.0.md index f0ec377f..5867f200 100644 --- a/ko/api-guide-v4.0.md +++ b/ko/api-guide-v4.0.md @@ -2,38 +2,29 @@ ## RDS for MySQL API 공통 정보 -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|-----------|-----------------------------------------------| -| 한국(판교) 리전 | https://kr1-rds-mysql.api.nhncloudservice.com | -| 한국(평촌) 리전 | https://kr2-rds-mysql.api.nhncloudservice.com | -| 일본 리전 | https://jp1-rds-mysql.api.nhncloudservice.com | - ### 인증 및 권한 RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. 발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|--------|--------|----|-------------------------------------------------------------| -| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | +| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. -또한 프로젝트 멤버 역할에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER`로 구분하여 권한을 부여할 수 있습니다. - -* `RDS for MySQL ADMIN` 권한은 모든 기능을 사용 가능합니다. -* `RDS for MySQL VIEWER` 권한은 정보를 조회하는 기능만 사용 가능합니다. +* `RDS for MySQL ADMIN` 역할은 API 실행에 필요한 모든 권한이 부여됩니다. +* `RDS for MySQL VIEWER` 역할은 정보를 조회하는 권한만 부여됩니다. * DB 인스턴스를 생성, 수정, 삭제하거나, DB 인스턴스를 대상으로 하는 어떠한 기능도 사용할 수 없습니다. - * 단, 알림 그룹 및 사용자 그룹 관련 기능은 사용 가능합니다. + * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용할 수 있습니다. API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같은 오류가 발생합니다. -| resultCode | resultMessage | 설명 | -|------------|---------------|-------------| -| 80401 | Unauthorized | 인증에 실패했습니다. | -| 80403 | Forbidden | 권한이 없습니다. | +| resultCode | resultMessage | 설명 | +|------------|---------------|-----| +| 80401 | Unauthorized | 인증에 실패했습니다. | +| 80403 | Forbidden | 권한이 없습니다. | ### 응답 공통 정보 @@ -51,59 +42,69 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 ``` #### 필드 -| 이름 | 형식 | 설명 | -|---------------|---------|-----------------------------------------| -| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | -| resultMessage | String | 결과 메시지 | -| isSuccessful | Boolean | 성공 여부 | +| 이름 | 형식 | 설명 | +|-----|-----|-----| +| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | +| resultMessage | String | 결과 메시지 | +| isSuccessful | Boolean | 성공 여부 | + +### API 엔드포인트 +| 리전 | 엔드포인트 | +|------|----------| +| 한국(판교) 리전 | https://kr1-rds-mysql.api.nhncloudservice.com | +| 한국(평촌) 리전 | https://kr2-rds-mysql.api.nhncloudservice.com | +| 일본 리전 | https://jp1-rds-mysql.api.nhncloudservice.com | ### DB 엔진 유형 -| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | -|--------------|----------|-----------------|--------| -| MYSQL\_V5633 | X | X | NATIVE | -| MYSQL\_V5715 | O | O | NATIVE | -| MYSQL\_V5719 | O | O | NATIVE | -| MYSQL\_V5726 | O | O | NATIVE | -| MYSQL\_V5731 | X | X | NATIVE | -| MYSQL\_V5733 | O | X | NATIVE, SHA256 | -| MYSQL\_V5737 | O | O | NATIVE, SHA256 | -| MYSQL\_V8018 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8023 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8028 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8032 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8033 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL\_V8034 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | -| MYSQL_V8405 | O | O | CACHING_SHA2 | -| MYSQL_V8406 | O | O | CACHING_SHA2 | -| MYSQL_V8407 | O | O | CACHING_SHA2 | -| MYSQL_V8408 | O | O | CACHING_SHA2 | - -* ENUM 타입의 dbVersion 필드에서 해당 값을 사용할 수 있습니다. +| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | +|------------|----------|------------------|------------| +| MYSQL_V5633 | X | X | NATIVE | +| MYSQL_V5715 | O | O | NATIVE | +| MYSQL_V5719 | O | O | NATIVE | +| MYSQL_V5726 | O | O | NATIVE | +| MYSQL_V5731 | X | X | NATIVE | +| MYSQL_V5733 | O | X | NATIVE, SHA256 | +| MYSQL_V5737 | O | O | NATIVE, SHA256 | +| MYSQL_V8018 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8023 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8028 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8032 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8033 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8034 | X | X | NATIVE, CACHING_SHA2 | +| MYSQL_V8035 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8036 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8040 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8041 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8042 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8043 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8044 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8045 | O | O | NATIVE, CACHING_SHA2 | +| MYSQL_V8405 | O | O | CACHING_SHA2 | +| MYSQL_V8406 | O | O | CACHING_SHA2 | +| MYSQL_V8407 | O | O | CACHING_SHA2 | +| MYSQL_V8408 | O | O | CACHING_SHA2 | + +* ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## 프로젝트 정보 +## DB 보안 그룹 -### 리전 목록 보기 +### DB 보안 그룹 진행 상태 -```http -GET /v4.0/project/regions -``` +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | -#### 필요 권한 +### DB 보안 그룹 목록 보기 -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMySQL:Project.Get | 프로젝트 정보 조회 | +```http +GET /v4.0/db-security-groups +``` #### 요청 @@ -111,11 +112,16 @@ GET /v4.0/project/regions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------|------|---------|----------------------------------------------------------------------------| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -127,69 +133,52 @@ GET /v4.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ - { - "regionCode": "KR1", - "isEnabled": true - }, - { - "regionCode": "KR2", - "isEnabled": true - }, + "totalCounts": 1, + "dbSecurityGroups": [ { - "regionCode": "JP1", - "isEnabled": true + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } ``` +

--- -### 프로젝트 멤버 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v4.0/project/members +POST /v4.0/db-security-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMySQL:Project.Get | 프로젝트 정보 조회 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|--------|-----------------| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ { - "memberId": "1b1d3627-507a-49ea-8cb7-c86dfa9caa58", - "memberName": "홍길동", - "emailAddress": "gildong.hong@nhn.com", - "phoneNumber": "+821012345678" + "description": "description-example" } ] } @@ -198,35 +187,11 @@ GET /v4.0/project/members

---- - -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 - -```http -GET /v4.0/db-flavors -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|------------------| -| RDSforMySQL:DbFlavor.List | DB 인스턴스 사양 목록 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -238,14 +203,7 @@ GET /v4.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbFlavorName": "m2.c1m2", - "ram": 2048, - "vcpus": 1 - } - ] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -254,34 +212,62 @@ GET /v4.0/db-flavors --- -## 네트워크 - -### 서브넷 목록 보기 +### DB 보안 그룹 삭제하기 ```http -GET /v4.0/network/subnets +DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 상세 보기 -| 권한명 | 설명 | -|------------------------------------------|-----------| -| RDSforMySQL:Network.List | 서브넷 목록 보기 | +```http +GET /v4.0/db-security-groups/{dbSecurityGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|---------|------------------| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | UUID | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| rules | Body | Array | DB 보안 그룹 규칙 목록 | +| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | 포트 객체 | +| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | 최소 포트 범위 | +| rules.port.maxPort | Body | Number | 최대 포트 범위 | +| rules.cidr | Body | String | CIDR | +| rules.createdYmdt | Body | DateTime | 생성 일시 | +| rules.updatedYmdt | Body | DateTime | 수정 일시 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -293,15 +279,17 @@ GET /v4.0/network/subnets "resultMessage": "SUCCESS", "isSuccessful": true }, - "subnets": [ + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ { - "subnetId": "1b2a9b23-0725-4b92-8c78-35db66b8ad9f", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/24", - "usingGateway": true, - "availableIpCount": 240 + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -310,81 +298,59 @@ GET /v4.0/network/subnets --- -## DB 엔진 - -### DB 엔진 목록 보기 +### DB 보안 그룹 수정하기 ```http -GET /v4.0/db-versions +PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|-------------| -| RDSforMySQL:DbVersion.List | DB 엔진 목록 보기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|---------|-----------------------| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "dbVersions": [ - { - "dbVersion": "MYSQL_V8028", - "dbVersionName": "MySQL 8.0.28", - "restorableFromObs": true - } - ] + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" } ```

---- +#### 응답 -## 데이터 스토리지 +이 API는 응답 본문을 반환하지 않습니다. + +--- -### 데이터 스토리지 타입 목록 보기 +### DB 보안 그룹 규칙 삭제하기 ```http -GET /v4.0/storage-types +DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------|-------------------| -| RDSforMySQL:Storage.List | 데이터 스토리지 타입 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|-------|----------------| -| storageTypes | Body | Array | 데이터 스토리지 타입 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -396,10 +362,7 @@ GET /v4.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [ - "General SSD", - "General HDD" - ] + "jobId": "jobId-example" } ``` @@ -408,56 +371,51 @@ GET /v4.0/storage-types --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### DB 보안 그룹 규칙 생성하기 ```http -GET /v4.0/jobs/{jobId} +POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------|-------------| -| RDSforMySQL:Job.Get | 작업 정보 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------|-----|------|----|---------| -| jobId | URL | UUID | O | 작업의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------|------|----------|-----------------------------------| -| jobId | Body | UUID | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태 | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | Enum | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | UUID | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -469,16 +427,7 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "0ddb042c-5af6-43fb-a914-f4dd0540eb7c", - "jobStatus": "RUNNING", - "resourceRelations": [ - { - "resourceType": "DB_INSTANCE", - "resourceId": "56b39dcf-65eb-47ec-9d4f-09f160ba2266" - } - ], - "createdYmdt": "2023-02-22T20:47:12+09:00", - "updatedYmdt": "2023-02-22T20:49:46+09:00" + "jobId": "jobId-example" } ``` @@ -487,33 +436,52 @@ GET /v4.0/jobs/{jobId} --- -## DB 인스턴스 그룹 - -### DB 인스턴스 그룹 목록 보기 +### DB 보안 그룹 규칙 수정하기 ```http -GET /v4.0/db-instance-groups +PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|--------------------------------------------------|------------------| -| RDSforMySQL:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------|------|----------|--------------------------------------------------------------------------| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |
예시

@@ -525,14 +493,7 @@ GET /v4.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ - { - "dbInstanceGroupId": "05de0746-89fd-49c8-94f9-9c5b1df97009", - "replicationType": "STANDALONE", - "createdYmdt": "2023-02-13T17:35:20+09:00", - "updatedYmdt": "2023-02-13T17:35:20+09:00" - } - ] + "jobId": "jobId-example" } ``` @@ -541,38 +502,26 @@ GET /v4.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v4.0/db-instance-groups/{dbInstanceGroupId} +GET /v4.0/db-versions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|------------------| -| RDSforMySQL:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|-----------------| -| dbInstanceGroupId | URL | UUID | O | DB 인스턴스 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |

예시

@@ -584,17 +533,11 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "36617a8e-0df8-4b16-b6ea-6306019e95da", - "replicationType": "STANDALONE", - "dbInstances": [ + "dbVersions": [ { - "dbInstanceId": "6d2db0ef-fe9b-4ed4-97b1-d97fcb4cf1b8", - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE" + "restorableFromObs": false } - ], - "createdYmdt": "2023-03-03T17:38:14+09:00", - "updatedYmdt": "2023-03-03T17:38:14+09:00" + ] } ``` @@ -627,8 +570,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `BACKING_UP` | 백업 중 | | `CANCELING` | 취소 중 | | `CREATING` | 생성 중 | -| `CREATING_SCHEMA` | DB 스키마 생성 중 | -| `CREATING_USER` | 사용자 생성 중 | +| `CREATING_SCHEMA` | DB 스키마 생성 중 | +| `CREATING_USER` | 사용자 생성 중 | | `DELETING` | 삭제 중 | | `DELETING_SCHEMA` | DB 스키마 삭제 중 | | `DELETING_USER` | 사용자 삭제 중 | @@ -647,8 +590,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `STARTING` | 시작 중 | | `STOPPING` | 정지 중 | | `SYNCING_SCHEMA` | DB 스키마 동기화 중 | -| `SYNCING_USER` | 사용자 동기화 중 | -| `UPDATING_USER` | 사용자 수정 중 | +| `SYNCING_USER` | 사용자 동기화 중 | +| `UPDATING_USER` | 사용자 수정 중 | ### DB 인스턴스 목록 보기 @@ -656,32 +599,26 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|---------------| -| RDSforMySQL:DbInstance.List | DB 인스턴스 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | -| dbInstances.dbPort | Body | Number | DB 포트 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태 | -| dbInstances.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstances.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstances | Body | Array | DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | +| dbInstances.dbPort | Body | Number | DB 포트 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbInstances.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstances.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -695,17 +632,7 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "createdYmdt": "2023-01-23T12:03:13+09:00", - "updatedYmdt": "2023-02-02T17:20:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -716,182 +643,764 @@ GET /v4.0/db-instances --- -### DB 인스턴스 상세 보기 +### DB 인스턴스 생성하기 ```http -GET /v4.0/db-instances/{dbInstanceId} +POST /v4.0/db-instances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 +#### 공통 요청 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| dbPort | Body | Number | DB 포트 | -| dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| progressStatus | Body | Enum | DB 인스턴스의 현재 작업 진행 상태 | -| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | -| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | -| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | -| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | -| supportAuthenticationPlugin | Body | Boolean | 인증 플러그인 지원 여부 | -| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | -| needMigration | Body | Boolean | 마이그레이션 필요 여부 | -| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| authenticationPlugin | Body | Enum | X | 인증 Plugin
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | TLS Option
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "dbFlavorId": "e9ed4ef6-78d7-46fa-ace9-32481e97f3b7", - "parameterGroupId": "b03e8b13-de27-4d04-a488-ff5689589372", - "dbSecurityGroupIds": ["01908c35-d2c9-4852-baf0-17f06ec42c03"], - "notificationGroupIds": ["83a62a33-ddbf-4a04-8653-e54463d5b1ac"], + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, "useDeletionProtection": false, "useSlowQueryAnalysis": true, - "supportAuthenticationPlugin": true, - "needToApplyParameterGroup": false, - "needMigration": false, - "supportDbVersionUpgrade": true, - "createdYmdt": "2022-11-23T12:03:13+09:00", - "updatedYmdt": "2022-12-02T17:20:17+09:00" -} -``` - -

-
- ---- - -### DB 인스턴스 생성하기 + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE", + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 오브젝트 스토리지를 이용한 DB 인스턴스 복원 + +```http +POST /v4.0/db-instances/restore-from-obs +``` + +#### 공통 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | +| restore.username | Body | String | O | NHN Cloud 계정 혹은 IAM 멤버 ID | +| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | +| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | +| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "dbVersion": "ENUM_VALUE", + "useHighAvailability": false, + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" + }, + "useDefaultNotification": false, + "useSlowQueryAnalysis": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 인스턴스 삭제하기 + +```http +DELETE /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| deleteAutoBackup | Body | Boolean | X | 자동 백업 삭제 여부
- 기본값: `false` | + +
예시 +

+ +```json +{ + "deleteAutoBackup": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### DB 인스턴스 상세 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| dbPort | Body | Number | DB 포트 | +| dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | +| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | +| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | +| supportAuthenticationPlugin | Body | Boolean | 인증 plugin 지원 여부 | +| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | +| needMigration | Body | Boolean | 마이그레이션 필요 여부 | +| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "dbFlavorId": "dbFlavorId-example", + "parameterGroupId": "parameterGroupId-example", + "dbSecurityGroupIds": [], + "notificationGroupIds": [], + "useDeletionProtection": false, + "useSlowQueryAnalysis": false, + "supportAuthenticationPlugin": false, + "needToApplyParameterGroup": false, + "needMigration": false, + "supportDbVersionUpgrade": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ +--- + +### DB 인스턴스 수정하기 + +```http +PUT /v4.0/db-instances/{dbInstanceId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbVersion | Body | Enum | X | DB 엔진 버전 코드 | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | +| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
- 기본값: `false` | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | + +
예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbPort": 1, + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "useSlowQueryAnalysis": false, + "useDummy": false, + "dbSecurityGroupIds": [], + "executeBackup": false, + "useOnlineFailover": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 백업 정보 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backupPeriod | Body | Number | 백업 보관 기간(일) | +| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | +| backupRetryCount | Body | Number | 백업 재시도 횟수 | +| replicationRegion | Body | Enum | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration
- HALF_AN_HOUR
- ONE_HOUR
- ONE_HOUR_AND_HALF
- TWO_HOURS
- TWO_HOURS_AND_HALF
- THREE_HOURS | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "backupPeriod": 1, + "ftwrlWaitTimeout": 1, + "backupRetryCount": 1, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +--- + +### 백업 정보 수정하기 + +```http +PUT /v4.0/db-instances/{dbInstanceId}/backup-info +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +
예시 +

+ +```json +{ + "backupPeriod": 0, + "ftwrlWaitTimeout": 0, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` + +

+
+ +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ +--- + +### 바이너리 로그 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/binlogs +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| binLogs | Body | Array | BinLog 파일 목록 | +| binLogs.binLogFileName | Body | String | BinLog 파일 이름 | +| binLogs.binLogFileSize | Body | Number | BinLog 파일 크기 (Byte) | +| binLogs.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "binLogs": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` + +

+
+ +--- + +### 바이너리 로그 삭제 + +```http +POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| lastBinLogFileName | Body | String | O | 삭제할 마지막 BinLog 파일 이름 (해당 파일 직전까지 삭제됨) | + +
예시 +

+ +```json +{ + "lastBinLogFileName": "mysql-bin.000010" +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 인증서 파일 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/certificates +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| certificates | Body | Array | 인증서 파일 목록 | +| certificates.fileName | Body | String | 인증서 파일 이름 | +| certificates.certificateType | Body | Enum | 인증서 타입
- CA_FILE
- CERT_FILE
- KEY_FILE | +| certificates.fileSize | Body | Number | 인증서 파일 크기(Byte) | +| certificates.createdYmdt | Body | DateTime | 생성 일시 | + +
예시 +

-```http -POST /v4.0/db-instances +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "certificates": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} ``` -#### 필요 권한 +

+
+ +--- -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Create | DB 인스턴스 생성하기 | +### 인증서 파일 내보내기 + +```http +POST /v4.0/db-instances/{dbInstanceId}/certificates/upload +``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|-------|---------|----|---------------------------------------------------------------------| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbUserName | Body | String | O | DB 사용자 계정명 | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- 기본값: `NATIVE`(미지원 시 `CACHING_SHA2`)
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| certificateTypes | Body | Array | O | 업로드할 인증서 타입 목록 | +| tenantId | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 인증서 파일의 경로 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbVersion": "MYSQL_V8028", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR" - } - ] - } + "certificateTypes": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -900,149 +1409,194 @@ POST /v4.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 수정하기 +### DB 스키마 목록 보기 ```http -PUT /v4.0/db-instances/{dbInstanceId} +GET /v4.0/db-instances/{dbInstanceId}/db-schemas ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|---------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbPort | Body | Number | X | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbVersion | Body | Enum | X | DB 엔진 유형 | -| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| useReadOnly | Body | Boolean | X | 읽기 전용으로 변경 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSchemas | Body | Array | DB 스키마 목록 | +| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | +| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | +| dbSchemas.createdYmdt | Body | DateTime | 생성 일시 |
예시

```json { - "dbInstanceName": "db-instance2", - "description": "description2", - "dbPort": 10001, - "dbSecurityGroupIds": [], - "executeBackup": true + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbSchemas": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 삭제하기 +### DB 스키마 생성하기 ```http -DELETE /v4.0/db-instances/{dbInstanceId} +POST /v4.0/db-instances/{dbInstanceId}/db-schemas ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Delete | DB 인스턴스 삭제하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaName | Body | String | O | DB 스키마 이름
- 최대 길이: `64`
- 영문 시작, 영문/숫자/_ 허용, 1~64자, MySQL 예약어 불가 | -#### 요청 +
예시 +

+ +```json +{ + "dbSchemaName": "dbSchemaName-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| deleteAutoBackup | Body | Boolean | X | 자동 백업 삭제 여부
- 기본값: `false` | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 재시작하기 +### DB 스키마 삭제하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/restart +DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Restart | DB 인스턴스 재시작하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| useReadOnly | Body | Boolean | X | 읽기 전용으로 변경 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- -### DB 인스턴스 강제 재시작하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/force-restart +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} ``` -#### 필요 권한 +

+
-| 권한명 | 설명 | -|-----------------------------------------------------|------------------| -| RDSforMySQL:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | +--- -#### 요청 +### DB 사용자 목록 보기 -이 API는 요청 본문을 요구하지 않습니다. +```http +GET /v4.0/db-instances/{dbInstanceId}/db-users +``` +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbUsers | Body | Array | DB 사용자 목록 | +| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | +| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | +| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- STABLE
- CREATING
- UPDATING
- SYNCING
- DELETING
- DELETED | +| dbUsers.createdYmdt | Body | DateTime | 생성 일시 | +| dbUsers.updatedYmdt | Body | DateTime | 수정 일시 | +| dbUsers.authenticationPlugin | Body | Enum | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| dbUsers.tlsOption | Body | Enum | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |
예시

@@ -1053,134 +1607,146 @@ POST /v4.0/db-instances/{dbInstanceId}/force-restart "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "dbUsers": [ + { + "tlsOption": "NONE" + } + ] } ```

- --- -### DB 인스턴스 시작하기 +### DB 사용자 생성하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/start +POST /v4.0/db-instances/{dbInstanceId}/db-users ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Start | DB 인스턴스 시작하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| host | Body | String | O | DB 사용자 계정의 호스트명
- 최대 길이: `45` | +| authorityType | Body | Enum | O | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "host": "host-example", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 정지하기 +### DB 사용자 삭제하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/stop +DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Stop | DB 인스턴스 정지하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 복제하기 +### DB 사용자 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/replicate +PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Replicate | DB 인스턴스 복제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록
- 기본값: 원본 DB 인스턴스 값 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: 원본 DB 인스턴스 값 | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 기본값: 원본 DB 인스턴스 값
- 예시: `General SSD` | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전
- 기본값: 원본 DB 인스턴스 값 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00`
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간
- 기본값: 원본 DB 인스턴스 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | +| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| authorityType | Body | Enum | X | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- CACHING_SHA2: `caching_sha2_password 인증 (MySQL 전용)`
- SHA256: `sha256_password 인증 (MySQL 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |
예시

```json { - "dbInstanceName": "db-instance-replicate", - "description": "description", - "dbPort": 11000, - "network": { - "availabilityZone": "kr-pub-a" - }, - "storage": { - "stroageSize": 100 - } + "dbPassword": "dbPassword", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" } ``` @@ -1189,147 +1755,117 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 승격하기 +### DB 인스턴스 삭제 보호 설정 변경 ```http -POST /v4.0/db-instances/{dbInstanceId}/promote +PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Promote | DB 인스턴스 승격하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 인스턴스 재구축하기 +### DB 인스턴스 강제 재시작하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/rebuild +POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Rebuild | DB 인스턴스 재구축하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 복원 정보 조회 +### 고가용성 정보 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info +GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | -| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | -| restorableBackups | Body | Array | 복원 가능한 백업 목록 | -| restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | -| restorableBackups.backup.backupName | Body | String | 백업 이름 | -| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | -| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동 | -| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- `BACKING_UP`: 백업 중인 경우
- `COMPLETED`: 백업이 완료된 경우
- `DELETING`: 백업이 삭제 중인 경우
- `DELETED`: 백업이 삭제된 경우
- `ERROR`: 오류가 발생한 경우 | -| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| restorableBackups.backup.dbVersion | Body | String | DB 엔진 유형 | -| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | -| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| restorableBackups.backup.binLogPosition | Body | Number | 바이너리 로그 파일 위치 | -| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | -| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | -| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| useHighAvailability | Body | Boolean | 고가용성 사용 여부
- 기본값: `false` | +| haStatus | Body | Enum | 고가용성 상태
- CREATED: `생성됨`
- STABLE: `정상`
- PAUSING: `일시 중지 중`
- DISABLE: `정지`
- DISABLE_MASTER_IN_REPLICATION: `마스터 비정상 복제 감지로 인한 고가용성 중단`
- DISABLE_MHA_PROCESS: `고가용성 프로세스 중단`
- DISABLE_REPLICATION_STOP: `복제 중단으로 인한 고가용성 중단`
- DISABLE_REPLICATION_DELAY: `복제 지연으로 인한 고가용성 중단`
- FAILOVER_STARTED: `장애 조치 시작`
- FAILOVER_FAILED: `장애 조치 실패`
- FAILOVER_COMPLETED: `장애 조치 완료`
- DELETED: `삭제됨`
- PAUSED: `일시 중지`
- PAUSED_DUE_TO_TASK: `작업으로 인한 일시 중지`
- MASTER_FAILURE_DETECTION: `마스터 장애 감지` | +| pingInterval | Body | Number | Ping 간격(초) | +| pingType | Body | String | Ping 방식 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "oldestRestorableYmdt": "2023-07-09T16:33:33+09:00", - "latestRestorableYmdt": "2023-07-10T15:44:44+09:00", - "restorableBackups": [ - { - "backup": { - "backupId": "145d889a-fe08-474f-8f58-bde576ff96a9", - "backupName": "example-backup-name", - "backupStatus": "COMPLETED", - "dbInstanceId": "dba1be25-9429-4589-9716-7fb6daad7cb9", - "dbInstanceName": "original-db-instance-name", - "dbVersion": "MYSQL_V8028", - "backupType": "MANUAL", - "backupSize": 8299904, - "useBackupLock": true, - "failoverCount": 0, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 367916037, - "createdYmdt": "2023-07-10T15:44:44+09:00", - "updatedYmdt": "2023-07-10T15:46:07+09:00" - }, - "restorableBinLogs": [ - "mysql-bin.000001" - ] - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "useHighAvailability": false, + "haStatus": "CREATED", + "pingInterval": 1, + "pingType": "pingType-example" } ``` @@ -1338,45 +1874,44 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info --- -### 복원될 마지막 쿼리 조회 +### 고가용성 수정하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query +PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|------|----|-----------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restoreType | Query | Enum | O | 복원 타입 종류
- `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
- `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | + +#### 고가용성 사용 시 -#### restoreType이 `TIMESTAMP`인 경우 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-------|----------|----|-------------------------------------------| -| restoreYmdt | Query | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +

예시 +

-#### restoreType이 `BINLOG`인 경우 +```json +{ + "useHighAvailability": false, + "pingInterval": 1 +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------|-------|--------|----|--------------------| -| backupId | Query | UUID | O | 복원에 사용할 백업의 식별자 | -| binLogFileName | Query | String | O | 복원에 사용할 바이너리 로그 이름 | -| binLogPosition | Query | Number | O | 복원에 사용할 바이너리 로그 위치 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|----------|--------------------------------------| -| executedYmdt | Body | DateTime | 쿼리 수행 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| lastQuery | Body | String | 마지막 수행 쿼리 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -1388,8 +1923,7 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query "resultMessage": "SUCCESS", "isSuccessful": true }, - "executedYmdt": "2023-03-17T14:02:29+09:00", - "lastQuery": "INSERT INTO `test`.`test`SET @1='0123'" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1398,368 +1932,142 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query --- -### 복원 +### 고가용성 일시 중지하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/restore +POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Restore | DB 인스턴스 복원하기 | - -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restore | Body | Object | O | 복원 정보 객체 | -| restore.restoreType | Body | Enum | O | 복원 타입 종류
- `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
- `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
- `BACKUP`: 기존에 생성한 백업을 이용한 스냅숏 복원 타입 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 고가용성 사용 시 필수 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a`
- 기본값: 랜덤 선택 | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 예시: `General SSD`
- 기본값: 원본 DB 인스턴스 값 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +이 API는 요청 본문을 요구하지 않습니다. -#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|----------|----|------------------------------------------------------------------------------------------------| -| restore.restoreYmdt | Body | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD)
복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "TIMESTAMP", - "restoreYmdt": "2023-07-10T15:44:44+09:00" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------------|------|--------|----|--------------------| -| restore.backupId | Body | UUID | O | 복원에 사용할 백업의 식별자 | -| restore.binLog | Body | Object | O | 바이너리 로그 정보 객체 | -| restore.binLog.binLogFileName | Body | String | O | 복원에 사용할 바이너리 로그 이름 | -| restore.binLog.binLogPosition | Body | Number | O | 복원에 사용할 바이너리 로그 위치 | - -* 바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그를 복원할 수 있습니다. - +--- -
예시 -

+### 고가용성 복구하기 -```json -{ - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BINLOG", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36", - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 1234567 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } -} +```http +POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` -

-
+#### 요청 -#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|------|------------------------------|-----------------| -| restore.backupId | Body | UUID | O(restoreType이 `BACKUP`인 경우) | 복원에 사용할 백업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BACKUP", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - - --- -### 오브젝트 스토리지로부터 복원 +### 고가용성 다시 시작하기 ```http -POST /v4.0/db-instances/restore-from-obs +POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------------|-------------------------| -| RDSforMySQL:DbInstance.RestoreFromObs | DB 인스턴스 오브젝트 스토리지로부터 복원 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|----------------------------------------------------------------------------------------| -| restore | Body | Object | O | 복원 정보 객체 | -| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | -| restore.username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | -| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | -| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbVersion": "MYSQL_V8028", - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "tenantId":"tenant-id", - "username":"username", - "password":"password", - "targetContainer":"targetContainer", - "objectPath":"objectPath" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - - --- - -### DB 인스턴스 삭제 보호 설정 변경하기 +### 고가용성 분리하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection +POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -1770,7 +2078,8 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1779,58 +2088,31 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection --- -### 고가용성 상태 - -| 상태 | 설명 | -|----------------------------------|---------------------------------| -| `CREATED` | 고가용성이 생성된 경우 | -| `STABLE` | 고가용성이 정상인 경우 | -| `PAUSING` | 고가용성이 일시 중지 중인 경우 | -| `PAUSED` | 고가용성이 일시 중지된 경우 | -| `PAUSED_DUE_TO_TASK` | 작업으로 인해 고가용성이 일시 중지된 경우 | -| `DISABLE_MASTER_IN_REPLICATION` | 마스터 비정상 복제 감지로 고가용성이 중단된 경우 | -| `DISABLE_MHA_PROCESS` | 고가용성 프로세스가 중단된 경우 | -| `DISABLE_REPLICATION_STOP` | 복제 중단으로 인해 고가용성이 중단된 경우 | -| `DISABLE_REPLICATION_DELAY` | 복제 지연으로 인해 고가용성이 중단된 경우 | -| `MASTER_FAILURE_DETECTION` | 마스터 장애가 감지된 경우 | -| `FAILOVER_STARTED` | 장애 조치가 시작된 경우 | -| `FAILOVER_FAILED` | 장애 조치가 실패한 경우 | -| `FAILOVER_COMPLETED` | 장애 조치가 완료된 경우 | -| `DELETED` | 고가용성이 삭제된 경우 | - ---- - -### 고가용성 정보 보기 +### 로그 파일 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/high-availability +GET /v4.0/db-instances/{dbInstanceId}/log-files ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|---------|---------------------------------------------------------------------------------------------------------------------| -| useHighAvailability | Body | Boolean | 고가용성 사용 여부 | -| haStatus | Body | Enum | 고가용성 상태 | -| pingInterval | Body | Number | Ping 간격(초) | -| pingType | Body | Enum | Ping 타입
- `INSERT`
- `SELECT` | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| logFiles | Body | Array | 로그 파일 목록 | +| logFiles.logFileName | Body | String | 로그 파일 이름 | +| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- ERROR
- BINLOG
- GENERAL
- SLOW_QUERY
- AUDIT
- BACKUP | +| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | +| logFiles.createdYmdt | Body | DateTime | 생성 일시 |

예시 -

```json @@ -1840,193 +2122,155 @@ GET /v4.0/db-instances/{dbInstanceId}/high-availability "resultMessage": "SUCCESS", "isSuccessful": true }, - "useHighAvailability": true, - "haStatus": "STABLE", - "pingInterval": 3, - "pingType": "INSERT" + "logFiles": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-
--- -### 고가용성 수정하기 +### 로그 파일 내보내기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/high-availability +POST /v4.0/db-instances/{dbInstanceId}/log-files/export ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Modify | 고가용성 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|---------|----|------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- `INSERT`
- `SELECT` | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 고가용성 사용 시 필수값 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| logFileNames | Body | Array | O | 로그 파일 이름 목록 | +| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | -### 고가용성 다시 시작하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume +```json +{ + "logFileNames": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------| -| RDSforMySQL:HighAvailability.Resume | 고가용성 다시 시작하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### 고가용성 일시 중지하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|--------------| -| RDSforMySQL:HighAvailability.Pause | 고가용성 일시 중지하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 고가용성 복구하기 +### 로그 파일 내용 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair +GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Repair | 고가용성 복구하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| logFileName | URL | UUID | O | 로그 파일 이름 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| content | Body | String | 로그 파일 내용 (최대 65533 bytes) | -### 고가용성 분리하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/split +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "content": "content-example" +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|-----------| -| RDSforMySQL:HighAvailability.Split | 고가용성 분리하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 데이터 스토리지 정보 보기 +### DB 인스턴스 유지 관리 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/storage-info +GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| type | Query | String | X | | +| statuses | Query | String | X | | +| category | Query | String | X | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|---------|--------------------------------------------------------------------------------------| -| storageType | Body | Enum | 데이터 스토리지 타입 | -| storageSize | Body | Number | 데이터 스토리지 크기(GB) | -| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- `DETACHED`: 부착되지 않음
- `ATTACHED`: 부착됨
- `DELETED`: 삭제됨 | -| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | -| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | -| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 유지 관리 목록 갯수 | +| maintenances | Body | Array | 유지 관리 목록 | +| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| maintenances.description | Body | String | 유지 관리 설명 | +| maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| maintenances.payload | Body | Object | 유지 관리 타입에 따른 Payload | +| maintenances.required | Body | Boolean | 유지 관리 필수 여부 | +| maintenances.deadlineYmdt | Body | DateTime | 유지 관리 강제 적용 일시 | +| maintenances.status | Body | Enum | 유지 관리 상태
- PENDING: `대기`
- READY: `준비`
- RUNNING: `실행 중`
- COMPLETED: `완료`
- FAILED: `실패`
- EXCLUDED: `제외`
- DELETED: `삭제`
- UNKNOWN | +| maintenances.executionType | Body | Enum | 유지 관리 실행 타입
- SCHEDULED: `예약 실행 (유지 관리 기간 자동 실행)`
- MANUAL: `수동 실행 (즉시 실행)`
- FORCED: `강제 실행 (데드라인 초과 자동 실행)` | +| maintenances.addedYmdt | Body | DateTime | 유지 관리 스케줄 등록 일시 | +| maintenances.executionStartedYmdt | Body | DateTime | 유지 관리 시작 일시 | +| maintenances.executionCompletedYmdt | Body | DateTime | 유지 관리 종료 일시 |
예시

@@ -2038,89 +2282,58 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "General SSD", - "storageSize": 20, - "storageStatus": "ATTACHED", - "storageAutoscale": { - "useStorageAutoscale": true, - "threshold": 80, - "maxStorageSize": 100, - "cooldownTime": 10 - } + "totalCounts": 1, + "maintenances": [ + { + "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

- --- -### 데이터 스토리지 정보 수정하기 +### DB 인스턴스 유지 관리 즉시 실행하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/storage-info +POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: 현재값
- 최댓값: `2048` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### 백업 정보 보기 - -```http -GET /v4.0/db-instances/{dbInstanceId}/backup-info -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|---------|----------------| -| backupPeriod | Body | Number | 백업 보관 기간(일) | -| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | -| backupRetryCount | Body | Number | 백업 재시도 횟수 | -| replicationRegion | Body | Enum | 백업 복제 리전 | -| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | -| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2132,65 +2345,42 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "backupPeriod": 1, - "ftwrlWaitTimeout": 1800, - "backupRetryCount": 0, - "replicationRegion": null, - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### 백업 정보 수정하기 +### DB 인스턴스 유지 관리 예약하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/backup-info +POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------------------------|------|---------|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload |
예시

```json { - "backupPeriod": 5, - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndBgnTime": "01:00:00", - "backupWndDuration": "TWO_HOURS" - } - ] + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" } ``` @@ -2199,45 +2389,58 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 네트워크 정보 보기 +### DB 인스턴스 유지 관리 삭제하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/network-info +DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| maintenanceId | URL | UUID | O | 유지 관리 아이디 | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 네트워크 정보 보기 -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | +```http +GET /v4.0/db-instances/{dbInstanceId}/network-info +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------------------------------------------------------------------------------------------------------------------------------| -| availabilityZone | Body | Enum | DB 인스턴스를 생성할 가용성 영역 | -| subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | UUID | 서브넷의 식별자 | -| subnet.subnetName | Body | UUID | 서브넷을 식별할 수 있는 이름 | -| subnet.subnetCidr | Body | UUID | 서브넷의 CIDR | -| endPoints | Body | Array | 접속 정보 목록 | -| endPoints.domain | Body | String | 도메인 | -| endPoints.ipAddress | Body | String | IP 주소 | -| endPoints.endPointType | Body | Enum | 접속 정보 타입
-`EXTERNAL`: 외부 접속 도메인
-`INTERNAL`: 내부 접속 도메인
-`PUBLIC`: (Deprecated) 외부 접속 도메인
-`PRIVATE`: (Deprecated) 내부 접속 도메인 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | +| subnet | Body | Object | 서브넷 객체 | +| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnet.subnetCidr | Body | String | 서브넷의 CIDR | +| endPoints | Body | Array | 접속 정보 목록 | +| endPoints.domain | Body | String | 도메인 | +| endPoints.ipAddress | Body | String | IP 주소 | +| endPoints.endPointType | Body | String | 접속 정보 타입 |

예시

@@ -2249,17 +2452,15 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "kr-pub-a", + "availabilityZone": "availabilityZone-example", "subnet": { - "subnetId": "bd453789-34ae-416c-9f78-05b9e43a46be", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/16" + "subnetId": "subnetId-example", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example" }, "endPoints": [ { - "domain": "ea548a78-d85f-43b4-8ddf-c88d999b9905.internal.kr1.mysql.rds.nhncloudservice.com", - "ipAddress": "192.168.0.2", - "endPointType": "INTERNAL" + "endPointType": "endPointType-example" } ] } @@ -2276,61 +2477,30 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | -### DB 사용자 목록 보기 +

예시 +

-```http -GET /v4.0/db-instances/{dbInstanceId}/db-users +```json +{ + "usePublicAccess": false +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|---------------------| -| RDSforMySQL:DbInstanceUser.List | DB 인스턴스 내 사용자 목록 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|-----------------------------------------------------------------------------------------------------------------------------| -| dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | -| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | -| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | -| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `UPDATING`: 수정 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbUsers.authenticationPlugin | Body | Enum | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| dbUsers.tlsOption | Body | Enum | TLS Option
- NONE
- SSL
- X509 | -| dbUsers.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbUsers.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2342,19 +2512,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbUsers": [ - { - "dbUserId": "4b3d530b-fd02-4d59-a620-83d019a67bbb", - "dbUserName": "db-user", - "host": "%", - "authorityType": "DDL", - "dbUserStatus": "STABLE", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE", - "createdYmdt": "2023-03-17T14:02:29+09:00", - "updatedYmdt": "2023-03-17T14:02:31+09:00" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2363,164 +2521,180 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users --- -### DB 사용자 생성하기 +### DB 인스턴스 승격하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-users +POST /v4.0/db-instances/{dbInstanceId}/promote ``` +#### 요청 -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Create | DB 인스턴스 내 사용자 생성하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserName | Body | String | O | DB 사용자 계정 이름
- 최소 길이: `1`
- 최대 길이: `32` | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| host | Body | String | O | DB 사용자 계정의 호스트명
- 예시: `1.1.1.%` | -| authorityType | Body | Enum | O | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- 기본값: `NATIVE`(미지원 시 `CACHING_SHA2`)
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | +#### 응답 -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 설정할 수 있습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "dbUserName": "db-user", - "dbPassword": "password", - "host": "1.1.1.%", - "authorityType": "CRUD", - "authenticationPlugin": "NATIVE", - "tlsOption": "NONE" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 수정하기 +### DB 인스턴스 재구축하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Modify | DB 인스턴스 내 사용자 수정하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | -| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| authorityType | Body | Enum | X | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- SHA256: `sha256_password`
- CACHING_SHA2: `caching_sha2_password` | -| tlsOption | Body | Enum | X | TLS Option
- NONE
- SSL
- X509 | +#### 응답 -> [주의] -> DB 인스턴스의 `supportAuthenticationPlugin` 값이 true인 DB 인스턴스만 `authenticationPlugin`, `tlsOption`의 값을 수정할 수 있습니다. -> `authenticationPlugin`의 값은 `dbPassword`와 동시에 수정을 해야 합니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "authorityType": "DDL" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 삭제하기 +### DB 인스턴스 복제하기 ```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +POST /v4.0/db-instances/{dbInstanceId}/replicate ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceUser.Delete | DB 인스턴스 내 사용자 삭제하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +#### 공통 요청 ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부 | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | X | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | X | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -### DB 스키마 목록 보기 +
예시 +

-```http -GET /v4.0/db-instances/{dbInstanceId}/db-schemas +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|---------------------| -| RDSforMySQL:DbInstanceSchema.List | DB 인스턴스 내 스키마 목록 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|------------------------------------------------------------------------------------------------------| -| dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | -| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | -| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbSchemas.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2532,14 +2706,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSchemas": [ - { - "dbSchemaId": "7c9a94b8-86c1-435d-8af2-82a5e9d53fd4", - "dbSchemaName": "schema", - "dbSchemaStatus": "STABLE", - "createdYmdt": "2023-03-20T13:37:45+09:00" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2548,93 +2715,99 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas --- -### DB 스키마 생성하기 +### DB 인스턴스 재시작하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-schemas +POST /v4.0/db-instances/{dbInstanceId}/restart ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceSchema.Create | DB 인스턴스 내 스키마 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaName | Body | String | O | DB 스키마 이름 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | -### DB 스키마 삭제하기 +

예시 +

-```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +```json +{ + "useOnlineFailover": false, + "executeBackup": false, + "waitReplicationDelay": false, + "useReadOnly": false +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMySQL:DbInstanceSchema.Delete | DB 인스턴스 내 스키마 삭제하기 | +

+
-#### 요청 +#### 응답 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | +
예시 +

-#### 응답 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### 로그 파일 목록 보기 +### DB 인스턴스 복원 정보 조회 ```http -GET /v4.0/db-instances/{dbInstanceId}/log-files +GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|-----------------------| -| RDSforMySQL:DbInstanceLog.List | DB 인스턴스 내 로그 파일 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|-------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileTypes | Query | Array | X | 로그 파일 타입 종류 목록
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| logFiles | Body | Array | 로그 파일 목록 | -| logFiles.logFileName | Body | String | 로그 파일명 | -| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | -| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | -| logFiles.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | +| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | +| restorableBackups | Body | Array | 복원 가능한 백업 목록 | +| restorableBackups.backup | Body | Object | 백업 정보 객체 | +| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupName | Body | String | 백업 이름 | +| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | +| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | +| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | +| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | +| restorableBackups.backup.binLogPosition | Body | Object | 바이너리 로그 파일 위치 | +| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | +| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | +| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 |
예시

@@ -2646,12 +2819,11 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files "resultMessage": "SUCCESS", "isSuccessful": true }, - "logFiles": [ + "oldestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "restorableBackups": [ { - "logFileName": "xtra_full.log-20230317", - "logFileType": "BACKUP", - "logFileSize": 4096, - "createdYmdt": "2023-03-17T14:02:29+09:00" + "restorableBinLogs": [] } ] } @@ -2662,33 +2834,26 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files --- -### 로그 파일 내용 보기 +### 복원될 마지막 쿼리 조회 ```http -GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} +GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|-----------------------| -| RDSforMySQL:DbInstanceLog.Get | DB 인스턴스 내 로그 파일 내용 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|--------|----|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileName | URL | String | O | 로그 파일명 | -| logFileType | Query | Enum | O | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------|------|--------|---------------------------| -| content | Body | String | 로그 파일 내용(최대 65533 Bytes) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| executedYmdt | Body | DateTime | 쿼리 수행 일시 | +| lastQuery | Body | String | 마지막 수행 쿼리 |

예시

@@ -2700,7 +2865,8 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} "resultMessage": "SUCCESS", "isSuccessful": true }, - "content": "..." + "executedYmdt": "2023-12-31T15:00:00+09:00", + "lastQuery": "lastQuery-example" } ``` @@ -2709,84 +2875,188 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} --- -### 로그 파일 내보내기 +### DB 인스턴스 복원 ```http -POST /v4.0/db-instances/{dbInstanceId}/log-files/export +POST /v4.0/db-instances/{dbInstanceId}/restore +``` + +#### 공통 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미입력 시 원본 인스턴스의 사양이 적용됩니다. | +| dbPort | Body | Number | X | DB 포트 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | X | 스토리지 정보 객체. 미입력 시 원본 인스턴스의 스토리지 설정이 적용됩니다. | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미입력 시 원본 인스턴스의 스토리지 타입이 적용됩니다. | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미입력 시 원본 인스턴스의 스토리지 크기가 적용됩니다.
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | X | 네트워크 정보 객체. 미입력 시 원본 인스턴스의 네트워크 설정이 적용됩니다. | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미입력 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미입력 시 랜덤 선택 | +| backup | Body | Object | X | 백업 정보 객체. 미입력 시 원본 인스턴스의 백업 설정이 적용됩니다. | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미입력 시 원본 인스턴스의 백업 보관 기간이 적용됩니다.
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미입력 시 원본 인스턴스의 백업 스케쥴이 적용됩니다. | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.restoreType | Body | Enum | O | 복원 타입
- TIMESTAMP: `복원 가능한 시간 이내의 시간을 이용한 시점 복원`
- BINLOG: `복원 가능한 바이너리 로그 위치를 이용한 시점 복원`
- BACKUP: `기존에 생성한 백업을 이용한 스냅숏 복원` | +| restore.binLog.binLogFileName | Body | String | X | 복원에 사용할 바이너리 로그 이름 | +| restore.binLog.binLogPosition | Body | Object | X | 복원에 사용할 바이너리 로그 위치 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미입력 시 원본 인스턴스의 파라미터 그룹이 적용됩니다. | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록. 미입력 시 원본 인스턴스의 보안 그룹이 적용됩니다. | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | + +#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.restoreYmdt | Body | DateTime | X | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | + +복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. + +#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | +| restore.binLog | Body | Object | X | 복원에 사용할 바이너리 로그 정보 객체 | + +바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. + +#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "useHighAvailability": false, + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "restoreType": "TIMESTAMP", + "binLog": { + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + } + } + }, + "useDefaultNotification": false, + "useSlowQueryAnalysis": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|----------------------| -| RDSforMySQL:DbInstanceLog.Export | DB 인스턴스 내 로그 파일 내보내기 | +

+
-#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|--------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileNames | Body | Array | O | 로그 파일명 목록
- 최소 크기: `1` | -| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "logFileNames": ["xtra_full.log-20230317"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "logs/backup" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### BinLog 목록 보기 +### DB 인스턴스 시작하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/binlogs +POST /v4.0/db-instances/{dbInstanceId}/start ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|---------------| -| RDSforMySQL:DbInstanceBinLog.List | BinLog 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|---------|----|---------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| deletable | Query | Boolean | X | 삭제 가능한 BinLog만 조회할지 여부
- `true`: 마지막 BinLog 제외
- `false`: 전체
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|----------|-----------------------------------| -| binLogs | Body | Array | BinLog 파일 목록 | -| binLogs.binLogFileName | Body | String | BinLog 파일명 | -| binLogs.binLogFileSize | Body | Number | BinLog 파일 크기(Byte) | -| binLogs.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2798,13 +3068,7 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs "resultMessage": "SUCCESS", "isSuccessful": true }, - "binLogs": [ - { - "binLogFileName": "mysql-bin.000001", - "binLogFileSize": 1073741824, - "createdYmdt": "2023-03-17T14:02:29+09:00" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2813,40 +3077,25 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs --- -### BinLog 삭제 +### DB 인스턴스 정지하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge +POST /v4.0/db-instances/{dbInstanceId}/stop ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|------------| -| RDSforMySQL:DbInstanceBinLog.Purge | BinLog 삭제 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| lastBinLogFileName | Body | String | O | 삭제할 마지막 BinLog 파일명(해당 파일 직전까지 삭제됩니다) | - -

예시 -

- -```json -{ - "lastBinLogFileName": "mysql-bin.000010" -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2857,7 +3106,8 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2866,35 +3116,32 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge --- -### 인증서 파일 목록 보기 +### 스토리지 정보 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/certificates +GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|---------------| -| RDSforMySQL:DbInstanceCertificate.List | 인증서 파일 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|---------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|------------------------------------------------------------------------------| -| certificates | Body | Array | 인증서 파일 목록 | -| certificates.fileName | Body | String | 인증서 파일명 | -| certificates.certificateType | Body | Enum | 인증서 타입
- `CA_FILE`: CA 인증서
- `CERT_FILE`: 인증서
- `KEY_FILE`: 비밀 키 | -| certificates.fileSize | Body | Number | 인증서 파일 크기(Byte) | -| certificates.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageType | Body | String | 데이터 스토리지 타입 | +| storageSize | Body | Number | 데이터 스토리지 크기(GB) | +| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- DELETED: `삭제됨`
- PENDING_DELETION: `삭제 유예됨`
- DELETION_RESERVED: `삭제 예약됨 (스냅샷 정리 대기)`
- DETACHED: `해제됨`
- ATTACHED: `할당됨` | +| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | +| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | +| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | +| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) |

예시

@@ -2906,14 +3153,15 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates "resultMessage": "SUCCESS", "isSuccessful": true }, - "certificates": [ - { - "fileName": "ca.pem", - "certificateType": "CA_FILE", - "fileSize": 2048, - "createdYmdt": "2023-03-17T14:02:29+09:00" - } - ] + "storageType": "storageType-example", + "storageSize": 1, + "storageStatus": "DELETED", + "storageAutoscale": { + "useStorageAutoscale": false, + "threshold": 1, + "maxStorageSize": 1, + "cooldownTime": 1 + } } ``` @@ -2922,41 +3170,38 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates --- -### 인증서 파일 내보내기 +### 스토리지 정보 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/certificates/upload +PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|----------------------------------------------------------|-------------| -| RDSforMySQL:DbInstanceCertificate.Export | 인증서 파일 내보내기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최댓값: `2048` | +| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -#### 요청 +#### 스토리지 자동 확장 사용 시 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|--------|----|------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| certificateTypes | Body | Array | O | 업로드할 인증서 타입
- `CA_FILE`: CA 인증서
- `CERT_FILE`: 인증서
- `KEY_FILE`: 비밀 키 | -| tenantId | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 인증서 파일의 경로 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |

예시

```json { - "certificateTypes": ["CA_FILE", "CERT_FILE", "KEY_FILE"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "certificates/" + "storageSize": 1, + "storageAutoscale": { + "useStorageAutoscale": false + } } ``` @@ -2965,67 +3210,10 @@ POST /v4.0/db-instances/{dbInstanceId}/certificates/upload #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | - -### 백업 상세 보기 - -```http -GET /v4.0/backups/{backupId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------|----------| -| RDSforMySQL:Backup.Get | 백업 상세 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------------------------|------|----------|-----------------| -| backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | UUID | 백업의 식별자 | -| backup.regionCode | Body | Enum | 리전 코드 | -| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backup.backupStatus | Body | Enum | 백업의 현재 상태 | -| backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| backup.dbVersion | Body | Enum | DB 엔진 버전 | -| backup.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backup.backupType | Body | Enum | 백업 유형 | -| backup.backupMethodType | Body | Enum | 백업 방식 | -| backup.backupFileType | Body | Enum | 백업 파일 유형 | -| backup.backupSize | Body | Number | 백업의 크기(Byte) | -| backup.isReplicable | Body | Boolean | 복제 가능 여부 | -| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| backup.binLogPosition | Body | Number | 바이너리 로그 위치 | -| backup.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| backup.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -

예시

@@ -3036,25 +3224,7 @@ GET /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "backup": { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "regionCode": "KR1", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbInstanceName": "db-instance", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupMethodType": "FULL", - "backupFileType": "XTRA_BACKUP", - "backupSize": 4996786, - "isReplicable": true, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 154, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" - } + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3063,46 +3233,27 @@ GET /v4.0/backups/{backupId} --- -### 백업 목록 조회 +## DB 인스턴스 그룹 + +### DB 인스턴스 그룹 목록 보기 ```http -GET /v4.0/backups +GET /v4.0/db-instance-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Backup.List | 백업 목록 조회 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | -| backupType | Query | Enum | X | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동
- 기본값: 전체 | -| dbInstanceId | Query | UUID | X | 원본 DB 인스턴스의 식별자 | -| dbVersion | Query | Enum | X | DB 엔진 유형 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|-----------------------------------| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | UUID | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태 | -| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 백업에 사용된 xtrabackup 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형 | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3114,19 +3265,9 @@ GET /v4.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "backups": [ + "dbInstanceGroups": [ { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbVersion": "MYSQL_V8028", - "utilVersion": "8.0.28", - "backupType": "AUTO", - "backupSize": 4996786, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -3137,313 +3278,173 @@ GET /v4.0/backups --- -### 백업 생성하기 +### DB 인스턴스 그룹 상세 보기 ```http -POST /v4.0/backups +GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Create | 백업 생성하기 | - -#### 공통 요청 +#### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|--------|----|--------------------------------------------------------------------------------------| -| backupName | Body | String | O | 백업을 식별할 수 있는 이름 | -| backupMethodType | Body | Enum | O | 백업 방식 타입 종류
- `FULL`: 전체 백업
- `INCREMENTAL`: 증분 백업
- `SNAPSHOT`: 스냅숏 백업 | +이 API는 요청 본문을 요구하지 않습니다. -#### 전체 백업(backupMethodType이 `FULL`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|--------------| -| dbInstanceId | Body | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "backupName": "example-backup-name", - "backupMethodType": "FULL", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 증분 백업(backupMethodType이 `INCREMENTAL`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|------------| -| baseBackupId | Body | UUID | O | 기준 백업의 식별자 | +--- +## DB 인스턴스 사양 -
예시 -

+### DB 인스턴스 사양 목록 보기 -```json -{ - "backupName": "example-backup-name", - "backupMethodType": "INCREMENTAL", - "baseBackupId": "3ae7914f-9b42-4729-b125-87417b72cf36" -} +```http +GET /v4.0/db-flavors ``` -

-
- +#### 요청 -#### 스냅숏 백업(backupMethodType이 `SNAPSHOT`인 경우) +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|--------------| -| dbInstanceId | Body | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

```json { - "backupName": "example-backup-name", - "backupMethodType": "SNAPSHOT", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ```

- -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 백업 내보내기 +## 가용성 영역 + +### 가용성 영역 목록 보기 ```http -POST /v4.0/backups/{backupId}/export +GET /v4.0/availability-zones ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Export | 백업 내보내기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | - -
예시 -

- -```json -{ - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - -> [주의] -> 수동 백업의 경우 백업이 수행된 DB 인스턴스가 존재하지 않으면, 백업을 오브젝트 스토리지로 내보낼 수 없습니다. - ---- - -### 백업 복원하기 - -```http -POST /v4.0/backups/{backupId}/restore -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------| -| RDSforMySQL:Backup.Restore | 백업 복원하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Integer | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a`
- 기본값: 랜덤 선택 | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 예시: `General SSD`
- 기본값: 원본 DB 인스턴스 값 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: 원본 DB 인스턴스 값 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- `KR1`: 한국(판교) 리전
- `KR2`: 한국(평촌) 리전
- `JP1`: 일본(도쿄) 리전 | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZones | Body | Array | 가용성 영역 목록 | +| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | +| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | +| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 |
예시

```json - { - "dbInstanceName": "db-instance-restore", - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbPort": 10000, - "parameterGroupId": "132d383c-38e3-468a-a826-5e9a8fff15d0", - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "HALF_AN_HOUR" + "availabilityZones": [ + { + "zoneState": { + "available": false } - ] - } + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- - -### 백업 삭제하기 - -```http -DELETE /v4.0/backups/{backupId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMySQL:Backup.Delete | 백업 삭제하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 네트워크 -### DB 보안 그룹 목록 보기 +### 서브넷 목록 보기 ```http -GET /v4.0/db-security-groups -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|----------------| -| RDSforMySQL:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | +GET /v4.0/network/subnets +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-----------------------------------| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |
예시

@@ -3455,14 +3456,9 @@ GET /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "subnets": [ { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2022-02-19T19:18:13+09:00" + "availableIpCount": 1 } ] } @@ -3473,48 +3469,23 @@ GET /v4.0/db-security-groups --- -### DB 보안 그룹 상세 보기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -GET /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/storage-types ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|----------------| -| RDSforMySQL:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|----------|--------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다.
- `PORT`: 지정된 포트값으로 설정됩니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | 허용할 트래픽의 원격 소스 | -| rules.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| rules.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

@@ -3526,30 +3497,7 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "rules": [ - { - "ruleId": "17c88ef6-95f1-4678-84f9-fee1b22e250d", - "description": "description", - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } - ], - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } + "storageTypes": [] } ``` @@ -3558,106 +3506,41 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 생성하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v4.0/db-security-groups +GET /v4.0/metric-statistics ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 필요하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. - -

예시 -

- -```json -{ - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "rules": [ - { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0" - } - ] -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|------|---------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### DB 보안 그룹 수정하기 +### Metric 목록 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/metrics ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|-----------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | - -
예시 -

- -```json -{ - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -3668,39 +3551,58 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "metrics": [ + { + "unit": "unit-example" + } + ] } ```

- --- -### DB 보안 그룹 삭제하기 +## 백업 -```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId} -``` +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | -#### 필요 권한 +### 백업 목록 조회 -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMySQL:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | +```http +GET /v4.0/backups +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3711,7 +3613,13 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "totalCounts": 1, + "backups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -3720,48 +3628,30 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 규칙 생성하기 +### 백업 생성하기 ```http -POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v4.0/backups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 필요하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | +| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | +| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT", - "minPort": 10000, - "maxPort": 10000 - }, - "cidr": "0.0.0.0/0" + "backupName": "backupName", + "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "backupMethodType": "FULL" } ``` @@ -3770,131 +3660,49 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### DB 보안 그룹 규칙 수정하기 - -```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleId | URL | UUID | O | DB 보안 그룹 규칙의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 필요하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. -

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "DB_PORT" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "0.0.0.0/0" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 보안 그룹 규칙 삭제하기 +### 백업 삭제하기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules +DELETE /v4.0/backups/{backupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|-------|----|---------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleIds | Query | Array | O | DB 보안 그룹 규칙의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 - -```http -GET /v4.0/parameter-groups -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.List | 파라미터 그룹 목록 보기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------|-------|------|----|----------| -| dbVersion | Query | Enum | X | DB 엔진 유형 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-------------------------------------------------------------------| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -
예시

@@ -3905,67 +3713,51 @@ GET /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroups": [ - { - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "createdYmdt": "2023-02-31T15:28:17+09:00", - "updatedYmdt": "2023-02-31T15:28:17+09:00" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### 파라미터 그룹 상세 보기 +### 백업 단건 조회 ```http -GET /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/backups/{backupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.Get | 파라미터 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|--------------------------------------------------------------------------------------------------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | UUID | 파라미터 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- `CLIENT`: client
- `MYSQL`: mysql
- `MYSQLD`: mysqld | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일명 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- `VARIABLE`: 언제든 수정 가능
- `CONSTANT`: 수정 불가능
- `INIT_VARIABLE`: DB 인스턴스 생성 시에만 수정 가능 | -| parameters.applyType | Body | Enum | 적용 타입
- `SESSION`: 세션 적용
- `FILE`: 설정 파일 적용(재시작 필요)
- `BOTH`: 전체(재시작 필요) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backup | Body | Object | 백업 상세 정보 | +| backup.backupId | Body | String | 백업의 식별자 | +| backup.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| backup.dbVersion | Body | Enum | DB 엔진 버전 | +| backup.utilVersion | Body | String | 유틸리티 버전 | +| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | +| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | +| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | +| backup.backupSize | Body | Number | 백업의 크기(Byte) | +| backup.isReplicable | Body | Boolean | 복제 가능 여부 | +| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | +| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | +| backup.createdYmdt | Body | DateTime | 생성 일시 | +| backup.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3977,62 +3769,61 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MYSQL_V8028", - "parameterGroupStatus": "STABLE", - "parameters": [ - { - "parameterId": "fa040b5e-f29f-46de-8f0d-bba4cb82887a", - "parameterFileGroup": "client", - "parameterName": "socket", - "fileParameterName": "socket", - "value": "/home/tcrds/db/mysql/tmp/mysql.sock", - "defaultValue": "/home/tcrds/db/mysql/tmp/mysql.sock", - "allowedValue": "", - "updateType": "CONSTANT", - "applyType": "BOTH" - } - ], - "createdYmdt": "2023-03-13T11:02:28+09:00", - "updatedYmdt": "2023-03-13T11:02:28+09:00" + "backup": { + "backupId": "backupId-example", + "regionCode": "KR1", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupMethodType": "FULL", + "backupFileType": "XBSTREAM", + "backupSize": 1, + "isReplicable": false, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ```

- --- -### 파라미터 그룹 생성하기 +### 백업 내보내기 ```http -POST /v4.0/parameter-groups +POST /v4.0/backups/{backupId}/export ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Create | 파라미터 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |
예시

```json { - "parameterGroupName": "parameter-group", - "dbVersion": "MYSQL_V8028" + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -4041,39 +3832,126 @@ POST /v4.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
--- -### 파라미터 그룹 복사하기 +### 백업 복원하기 ```http -POST /v4.0/parameter-groups/{parameterGroupId}/copy +POST /v4.0/backups/{backupId}/restore ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Copy | 파라미터 그룹 복사하기 | - -#### 요청 +#### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | +| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |
예시

```json { - "parameterGroupName": "parameter-group-copy", - "description": "copy" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } } ``` @@ -4082,47 +3960,51 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | - ---- - -### 파라미터 그룹 수정하기 - -```http -PUT /v4.0/parameter-groups/{parameterGroupId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "parameterGroupName": "parameter-group" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

+--- + +## 사용자 그룹 + +### 사용자 그룹 목록 보기 + +```http +GET /v4.0/user-groups +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4133,7 +4015,13 @@ PUT /v4.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "totalCounts": 1, + "userGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -4142,38 +4030,28 @@ PUT /v4.0/parameter-groups/{parameterGroupId} --- -### 파라미터 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/parameters +POST /v4.0/user-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------|------|--------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "modifiedParameters": [ - { - "parameterId": "3abac558-7274-44e1-9f4a-f100f53f67ba", - "value": "0" - } - ] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ``` @@ -4182,7 +4060,9 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

@@ -4193,7 +4073,8 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "userGroupId": "userGroupId-example" } ``` @@ -4202,27 +4083,51 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters --- -### 파라미터 그룹 재설정하기 +### 사용자 그룹 삭제하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/reset +DELETE /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 -| 권한명 | 설명 | -|--------------------------------------------------|---------------| -| RDSforMySQL:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | +```http +GET /v4.0/user-groups/{userGroupId} +``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4233,7 +4138,17 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ + { + "memberId": "memberId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4242,75 +4157,65 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset --- -### 파라미터 그룹 삭제하기 +### 사용자 그룹 수정하기 ```http -DELETE /v4.0/parameter-groups/{parameterGroupId} +PUT /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMySQL:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 사용자 그룹 +## 알림 그룹 -### 사용자 그룹 목록 보기 +### 알림 그룹 목록 보기 ```http -GET /v4.0/user-groups +GET /v4.0/notification-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|--------------| -| RDSforMySQL:UserGroup.List | 사용자 그룹 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|-----------------------------------| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4322,12 +4227,9 @@ GET /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "notificationGroups": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -4338,37 +4240,45 @@ GET /v4.0/user-groups --- -### 사용자 그룹 상세 보기 +### 알림 그룹 생성하기 ```http -GET /v4.0/user-groups/{userGroupId} +POST /v4.0/notification-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------------|--------------| -| RDSforMySQL:UserGroup.Get | 사용자 그룹 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], + "userGroupIds": [] +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|----------|-----------------------------------------------------------------------------------------------------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
`ENTIRE`: 프로젝트 멤버 전체를 포함하는 사용자 그룹
`INDIVIDUAL_MEMBER`: 특정 프로젝트 멤버를 포함하는 사용자 그룹 | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 |
예시

@@ -4380,16 +4290,7 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "userGroupTypeCode": "INDIVIDUAL_MEMBER", - "members": [ - { - "memberId": "1321e759-2ef3-4b85-9921-b13e918b24b5" - } - ], - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -4398,96 +4299,57 @@ GET /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 생성하기 +### 알림 그룹 삭제하기 ```http -POST /v4.0/user-groups +DELETE /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Create | 사용자 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|-----------------------------------------------------------| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록
`selectAll`이 true인 경우 해당 필드 값은 무시됩니다 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 여부
true인 경우 해당 그룹은 전체 멤버를 대상으로 설정됩니다 | - -

예시 -

- -```json -{ - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5" - ] -} -``` - -```json -{ - "userGroupName": "dev-team", - "selectAll": true -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------|------|------|-------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 사용자 그룹 수정하기 +### 알림 그룹 상세 보기 ```http -PUT /v4.0/user-groups/{userGroupId} +GET /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Modify | 사용자 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|----------------------------------------------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | -| userGroupName | Body | String | X | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 여부
true인 경우 해당 그룹은 전체 멤버를 대상으로 설정됩니다 | - -
예시 -

- -```json -{ - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5", - "f9064b09-2b15-442e-a4b0-3a5a2754555e" - ] -} -``` +이 API는 요청 본문을 요구하지 않습니다. -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4498,7 +4360,24 @@ PUT /v4.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ + { + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4507,59 +4386,67 @@ PUT /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 삭제하기 +### 알림 그룹 수정하기 ```http -DELETE /v4.0/user-groups/{userGroupId} +PUT /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMySQL:UserGroup.Delete | 사용자 그룹 삭제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 알림 그룹 +## 이벤트 -### 알림 그룹 목록 보기 +### 이벤트 카테고리 -```http -GET /v4.0/notification-groups -``` +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. + +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -#### 필요 권한 +### 구독 가능한 이벤트 코드 목록 보기 -| 권한명 | 설명 | -|----------------------------------------------------|-------------| -| RDSforMySQL:NotificationGroup.List | 알림 그룹 목록 보기 | +```http +GET /v4.0/event-codes +``` #### 요청 @@ -4567,16 +4454,11 @@ GET /v4.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------------|------|----------|-----------------------------------| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |
예시

@@ -4588,15 +4470,9 @@ GET /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ + "eventCodes": [ { - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "eventCategoryType": "ALL" } ] } @@ -4607,43 +4483,30 @@ GET /v4.0/notification-groups --- -### 알림 그룹 상세 보기 +### 이벤트 목록 조회 ```http -GET /v4.0/notification-groups/{notificationGroupId} +GET /v4.0/events ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|-------------| -| RDSforMySQL:NotificationGroup.Get | 알림 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------------|------|----------|-----------------------------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

@@ -4655,25 +4518,12 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "dbInstances": [ - { - "dbInstanceId": "ed5cb985-526f-4c54-9ae0-40288593de65", - "dbInstanceName": "database" - } - ], - "userGroups": [ + "totalCounts": 1, + "events": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team" + "eventYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + ] } ``` @@ -4682,42 +4532,52 @@ GET /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 생성하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v4.0/notification-groups +GET /v4.0/event-subscriptions ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Create | 알림 그룹 생성하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------------| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |

예시

```json { - "notificationGroupName": "dev-team-noti", - "notifyEmail": false, - "isEnable": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65" - ], - "userGroupIds": [ - "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } ] } ``` @@ -4725,48 +4585,46 @@ POST /v4.0/notification-groups

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|------|------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | - --- -### 알림 그룹 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v4.0/notification-groups/{notificationGroupId} +POST /v4.0/event-subscriptions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Modify | 알림 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부 | -| notifySms | Body | Boolean | X | SMS 알림 여부 | -| isEnabled | Body | Boolean | X | 활성화 여부 | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "notifyEmail": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65", - "d51b7da0-682f-47ff-b588-b739f6adc740" - ] + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ``` @@ -4775,7 +4633,9 @@ PUT /v4.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -4786,7 +4646,8 @@ PUT /v4.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -4795,73 +4656,121 @@ PUT /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 삭제하기 +### 이벤트 구독 삭제하기 ```http -DELETE /v4.0/notification-groups/{notificationGroupId} +DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMySQL:NotificationGroup.Delete | 알림 그룹 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | #### 응답 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v4.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 모니터링 +## 작업 정보 -### Metric 목록 보기 +### 작업 상태 -```http -GET /v4.0/metrics -``` +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | -#### 필요 권한 +### 작업 정보 상세 보기 -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Metric.List | 통계 정보 조회 | +```http +GET /v4.0/jobs/{jobId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|--------|-----------| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | Enum | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4873,12 +4782,15 @@ GET /v4.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ { - "measureName": "CPU_USAGE", - "unit": "%" + "resourceId": "resourceId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4887,62 +4799,47 @@ GET /v4.0/metrics --- -### 통계 정보 조회 +## 파라미터 그룹 + +### 파라미터 그룹 목록 보기 ```http -GET /v4.0/metric-statistics +GET /v4.0/parameter-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMySQL:Metric.List | 통계 정보 조회 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|----------|----|-----------------------------------| -| dbInstanceId | Query | UUID | O | DB 인스턴스의 식별자 | -| measureNames | Query | Array | O | 조회 지표 목록
- 최소 크기: `1` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| interval | Query | Number | X | 조회 간격 | +이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|-----------|----------| -| metricStatistics | Body | Array | 통계 정보 목록 | -| metricStatistics.measureName | Body | Enum | 측정 항목 유형 | -| metricStatistics.unit | Body | String | 측정값 단위 | -| metricStatistics.values | Body | Array | 측정값 목록 | -| metricStatistics.values.timestamp | Body | Timestamp | 측정 시간 | -| metricStatistics.values.value | Body | Object | 측정값 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 파라미터 그룹 수 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "metricStatistics": [ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "parameterGroups": [ { - "measureName": "MYSQL_STATUS", - "unit": "", - "values": [ - [ - 1679298540, - "1" - ], - [ - 1679298600, - "1" - ], - [ - 1679298660, - "1" - ] - ] + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -4953,62 +4850,39 @@ GET /v4.0/metric-statistics --- -## 이벤트 - -### 이벤트 카테고리 - -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. - -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | - -### 이벤트 목록 조회 +### 파라미터 그룹 생성하기 ```http -GET /v4.0/events +POST /v4.0/parameter-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMySQL:Event.List | 이벤트 목록 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| eventCategoryType | Query | Enum | O | 조회할 이벤트 카테고리 유형
- `ALL`: 전체
- `INSTANCE`: DB 인스턴스
- `BACKUP`: 백업
- `DB_SECURITY_GROUP`: DB 보안 그룹
- `TENANT`: 테넌트 | -| sourceId | Query | String | X | 이벤트가 발생한 대상 리소스의 식별자 | -| keyword | Query | String | X | 이벤트 메시지에 포함된 문자열 검색어 | -| ascendingOrder | Query | Enum | X | 이벤트 메시지 정렬 순서
- `ASC`: 오름차순
- `DESC`: 내림차순
- 기본값: `DESC` | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|---------------------------------------| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메시지 목록 | -| events.messages.langCode | Body | String | 언어 코드 | -| events.messages.message | Body | String | 이벤트 메시지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -5020,34 +4894,7 @@ GET /v4.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 28, - "events": [ - { - "eventCategoryType": "INSTANCE", - "eventCode": "INSTC_02_01", - "sourceId": "76f00947-356e-4a20-8922-428368cc45ed", - "sourceName": "db-instance", - "messages": [ - { - "langCode": "EN", - "message": "DB instance started" - }, - { - "langCode": "JA", - "message": "DBインスタンスの起動" - }, - { - "langCode": "KO", - "message": "DB 인스턴스 시작" - }, - { - "langCode": "ZH", - "message": "DB instance started" - } - ], - "eventYmdt": "2023-03-20T16:31:59+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -5056,29 +4903,61 @@ GET /v4.0/events --- -### 구독 가능한 이벤트 코드 목록 보기 +### 파라미터 그룹 삭제하기 ```http -GET /v4.0/event-codes +DELETE /v4.0/parameter-groups/{parameterGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMySQL:Event.List | 이벤트 목록 보기 | +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 파라미터 그룹 상세 보기 + +```http +GET /v4.0/parameter-groups/{parameterGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|-------|-------------| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -5090,12 +4969,18 @@ GET /v4.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "eventCode": "INSTC_05_01", - "eventCategoryType": "INSTANCE" + "applyType": "BOTH" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -5104,140 +4989,60 @@ GET /v4.0/event-codes --- -## 이벤트 구독 - -### 이벤트 구독 목록 조회 +### 파라미터 그룹 수정하기 ```http -GET /v4.0/event-subscriptions +PUT /v4.0/parameter-groups/{parameterGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------------|---------------| -| RDSforMySQL:EventSubscription.List | 이벤트 구독 목록 조회 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | -| eventSubscriptionId | Query | UUID | X | 이벤트 구독의 식별자 | -| eventSubscriptionName | Query | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| userGroupId | Query | UUID | X | 사용자 그룹의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------------|------|----------|--------------------------| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트의 구독 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독을 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | UUID | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "eventSubscriptions": [ - { - "eventSubscriptionId": "12345678-1234-1234-1234-123456789012", - "eventCategoryType": "INSTANCE", - "eventSubscriptionName": "example-event-subscription", - "enabled": true, - "notifyEmail": true, - "notifySms": false, - "eventCodes": [ - "INSTC_05_01" - ], - "sources": [ - { - "sourceId": "87654321-4321-4321-4321-210987654321", - "eventCategoryType": "INSTANCE" - } - ], - "userGroupIds": [ - "11111111-2222-3333-4444-555555555555" - ], - "createdYmdt": "2024-01-01T12:00:00+09:00" - } - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 이벤트 구독 생성하기 +### 파라미터 그룹 복사하기 ```http -POST /v4.0/event-subscriptions +POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------------|--------------| -| RDSforMySQL:EventSubscription.Create | 이벤트 구독 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------------------|------|---------|----|-----------------------------------------| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형 | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름
- 최대 길이: `100` | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형 | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |
예시

```json { - "eventCategoryType": "INSTANCE", - "eventSubscriptionName": "example-event-subscription", - "enabled": true, - "notifyEmail": true, - "notifySms": false, - "eventCodes": [ - "INSTC_05_01" - ], - "sources": [ - { - "sourceId": "87654321-4321-4321-4321-210987654321", - "eventCategoryType": "INSTANCE" - } - ], - "userGroupIds": [ - "11111111-2222-3333-4444-555555555555" - ] + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ``` @@ -5246,9 +5051,9 @@ POST /v4.0/event-subscriptions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------|------|------|-------------| -| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -5260,7 +5065,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "12345678-1234-1234-1234-123456789012" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -5269,56 +5074,30 @@ POST /v4.0/event-subscriptions --- -### 이벤트 구독 수정하기 +### 파라미터 수정하기 ```http -PUT /v4.0/event-subscriptions/{eventSubscriptionId} +PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------------|--------------| -| RDSforMySQL:EventSubscription.Modify | 이벤트 구독 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------------------|------|---------|----|-----------------------------------| -| eventSubscriptionId | URL | UUID | O | 이벤트 구독의 식별자 | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형 | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | X | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형 | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "eventSubscriptionName": "updated-event-subscription", - "enabled": false, - "notifyEmail": false, - "notifySms": true, - "eventCodes": [ - "INSTC_05_01", - "INSTC_06_01" - ], - "sources": [ + "modifiedParameters": [ { - "sourceId": "87654321-4321-4321-4321-210987654321", - "eventCategoryType": "INSTANCE" + "value": "value-example" } - ], - "userGroupIds": [ - "11111111-2222-3333-4444-555555555555", - "22222222-3333-4444-5555-666666666666" ] } ``` @@ -5330,6 +5109,50 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} 이 API는 응답 본문을 반환하지 않습니다. +--- + +### 파라미터 그룹 재설정하기 + +```http +PUT /v4.0/parameter-groups/{parameterGroupId}/reset +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 프로젝트 정보 + +### 프로젝트 멤버 목록 보기 + +```http +GET /v4.0/project/members +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +

예시

@@ -5339,7 +5162,12 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "members": [ + { + "phoneNumber": "phoneNumber-example" + } + ] } ``` @@ -5348,27 +5176,23 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} --- -### 이벤트 구독 삭제하기 +### 리전 목록 보기 ```http -DELETE /v4.0/event-subscriptions/{eventSubscriptionId} +GET /v4.0/project/regions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------------|--------------| -| RDSforMySQL:EventSubscription.Delete | 이벤트 구독 삭제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|-----|------|----|-------------| -| eventSubscriptionId | URL | UUID | O | 이벤트 구독의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

@@ -5379,7 +5203,12 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "regions": [ + { + "isEnabled": false + } + ] } ``` @@ -5387,3 +5216,4 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId}

--- + From 45547dad104ca8df64e94d3dd021f23766b8ba0b Mon Sep 17 00:00:00 2001 From: hyungmin-oh Date: Tue, 2 Jun 2026 15:40:52 +0900 Subject: [PATCH 2/7] =?UTF-8?q?docs:=20API=20=EA=B0=80=EC=9D=B4=EB=93=9C?= =?UTF-8?q?=20=EC=84=B9=EC=85=98=20=EC=88=9C=EC=84=9C=C2=B7v3.0=20?= =?UTF-8?q?=EC=9D=B8=EC=A6=9D=C2=B7build.js=20=EB=B3=B4=EC=99=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 섹션 순서: 프로젝트 정보(리전 목록) 등 의미순으로 재정렬, 가용성 영역은 끝으로 - v3.0 인증 헤더를 User Access Key ID/Secret(X-TC-AUTHENTICATION-*)로 분리(v4.0은 Bearer 유지) - v3.0 데이터 스토리지 섹션 병합(storages) - build.js: mysql api-guide-v3.0/v4.0 을 exclusionDocs에 추가(생성기 산출물 보존, 템플릿 재생성 방지) --- build.js | 14 +- ko/api-guide-v3.0-gov.md | 1904 ++++++++++++++++----------------- ko/api-guide-v3.0-ncgn.md | 1904 ++++++++++++++++----------------- ko/api-guide-v3.0-ngoic.md | 1904 ++++++++++++++++----------------- ko/api-guide-v3.0-ngovc.md | 1904 ++++++++++++++++----------------- ko/api-guide-v3.0-ngsc.md | 1904 ++++++++++++++++----------------- ko/api-guide-v3.0-ninc.md | 1904 ++++++++++++++++----------------- ko/api-guide-v3.0.md | 1904 ++++++++++++++++----------------- ko/api-guide-v4.0-gov.md | 2054 ++++++++++++++++++------------------ ko/api-guide-v4.0-ncgn.md | 2054 ++++++++++++++++++------------------ ko/api-guide-v4.0-ngoic.md | 2054 ++++++++++++++++++------------------ ko/api-guide-v4.0-ngovc.md | 2054 ++++++++++++++++++------------------ ko/api-guide-v4.0-ngsc.md | 2054 ++++++++++++++++++------------------ ko/api-guide-v4.0-ninc.md | 2054 ++++++++++++++++++------------------ ko/api-guide-v4.0.md | 2054 ++++++++++++++++++------------------ 15 files changed, 13860 insertions(+), 13860 deletions(-) diff --git a/build.js b/build.js index 1092990f..3c5b142a 100644 --- a/build.js +++ b/build.js @@ -30,37 +30,37 @@ const allConfigs = [ { engine: 'mysql', env: 'public', - exclusionDocs: [] + exclusionDocs: ['api-guide-v3.0', 'api-guide-v4.0'] }, { engine: 'mysql', env: 'gov', - exclusionDocs: [] + exclusionDocs: ['api-guide-v3.0', 'api-guide-v4.0'] }, { engine: 'mysql', env: 'ncgn', - exclusionDocs: [] + exclusionDocs: ['api-guide-v3.0', 'api-guide-v4.0'] }, { engine: 'mysql', env: 'ninc', - exclusionDocs: ['api-guide-v2.0'] + exclusionDocs: ['api-guide-v2.0', 'api-guide-v3.0', 'api-guide-v4.0'] }, { engine: 'mysql', env: 'ngovc', - exclusionDocs: ['api-guide-v2.0'] + exclusionDocs: ['api-guide-v2.0', 'api-guide-v3.0', 'api-guide-v4.0'] }, { engine: 'mysql', env: 'ngoic', - exclusionDocs: ['api-guide-v2.0'] + exclusionDocs: ['api-guide-v2.0', 'api-guide-v3.0', 'api-guide-v4.0'] }, { engine: 'mysql', env: 'ngsc', - exclusionDocs: ['api-guide-v2.0'] + exclusionDocs: ['api-guide-v2.0', 'api-guide-v3.0', 'api-guide-v4.0'] }, { engine: 'mariadb', diff --git a/ko/api-guide-v3.0-gov.md b/ko/api-guide-v3.0-gov.md index 2cb54f64..c5c6f97a 100644 --- a/ko/api-guide-v3.0-gov.md +++ b/ko/api-guide-v3.0-gov.md @@ -4,13 +4,16 @@ ### 인증 및 권한 -RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. -발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. +RDS for MySQL 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](/nhncloud/ko/public-api/user-access-key)를 참고하세요. +생성된 Key는 Appkey와 함께 요청 Header에 포함해야 합니다. | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| | X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +| X-TC-AUTHENTICATION-ID | Header | String | O | API 보안 설정 메뉴의 User Access Key ID | +| X-TC-AUTHENTICATION-SECRET | Header | String | O | API 보안 설정 메뉴의 Secret Access Key | 또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. @@ -47,7 +50,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | - ### API 엔드포인트 | 리전 | 엔드포인트 | @@ -87,21 +89,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 프로젝트 정보 -### DB 보안 그룹 목록 보기 +### 프로젝트 멤버 목록 보기 ```http -GET /v3.0/db-security-groups +GET /v3.0/project/members ``` #### 요청 @@ -112,13 +105,11 @@ GET /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -130,9 +121,9 @@ GET /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "members": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -143,51 +134,23 @@ GET /v3.0/db-security-groups --- -### DB 보안 그룹 생성하기 +### 리전 목록 보기 ```http -POST /v3.0/db-security-groups +GET /v3.0/project/regions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| rules.cidr | Body | String | O | CIDR | -| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | - -

예시 -

- -```json -{ - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example", - "rules": [ - { - "description": "description-example" - } - ] -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |
예시

@@ -199,7 +162,11 @@ POST /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "regions": [ + { + "isEnabled": false + } + ] } ``` @@ -208,63 +175,27 @@ POST /v3.0/db-security-groups --- -### DB 보안 그룹 삭제하기 - -```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- +## DB 인스턴스 사양 -### DB 보안 그룹 상세 보기 +### DB 인스턴스 사양 목록 보기 ```http -GET /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/db-flavors ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroup | Body | Object | DB 보안 그룹 | -| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | -| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | -| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | -| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | -| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | -| dbSecurityGroup.rules.cidr | Body | String | CIDR | -| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | -| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 | +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |

예시

@@ -276,19 +207,11 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "dbSecurityGroupId-example", - "dbSecurityGroupName": "dbSecurityGroupName-example", - "description": "description-example", - "progressStatus": "NONE", - "rules": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ``` @@ -297,59 +220,72 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 수정하기 +## 네트워크 + +### 서브넷 목록 보기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/network/subnets ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### DB 보안 그룹 규칙 삭제하기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v3.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleIds | Query | String | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |
예시

@@ -361,7 +297,11 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "dbVersions": [ + { + "restorableFromObs": false + } + ] } ``` @@ -370,51 +310,23 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 생성하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v3.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| storageTypes | Body | Array | 스토리지 타입 목록 |
예시

@@ -426,7 +338,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "storageTypes": [] } ``` @@ -435,52 +347,85 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 수정하기 +### 스토리지 목록 보기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +GET /v3.0/storages ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storages | Body | Array | 스토리지 목록 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "cidr-example", - "description": "description-example" + "storages": [] } ```

+--- + +## 작업 정보 + +### 작업 상태 + +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 + +```http +GET /v3.0/jobs/{jobId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -492,7 +437,15 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ + { + "resourceId": "resourceId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -501,12 +454,12 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} --- -## DB 엔진 +## DB 인스턴스 그룹 -### DB 엔진 목록 보기 +### DB 인스턴스 그룹 목록 보기 ```http -GET /v3.0/db-versions +GET /v3.0/db-instance-groups ``` #### 요청 @@ -517,10 +470,11 @@ GET /v3.0/db-versions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -532,9 +486,9 @@ GET /v3.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ + "dbInstanceGroups": [ { - "restorableFromObs": false + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -545,6 +499,60 @@ GET /v3.0/db-versions --- +### DB 인스턴스 그룹 상세 보기 + +```http +GET /v3.0/db-instance-groups/{dbInstanceGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ +--- + ## DB 인스턴스 ### DB 인스턴스 상태 @@ -2698,12 +2706,22 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info --- -## DB 인스턴스 그룹 +## 백업 -### DB 인스턴스 그룹 목록 보기 +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | + +### 백업 목록 조회 ```http -GET /v3.0/db-instance-groups +GET /v3.0/backups ``` #### 요청 @@ -2714,11 +2732,18 @@ GET /v3.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2730,7 +2755,8 @@ GET /v3.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ + "totalCounts": 1, + "backups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -2743,10 +2769,10 @@ GET /v3.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +### 백업 삭제하기 ```http -GET /v3.0/db-instance-groups/{dbInstanceGroupId} +DELETE /v3.0/backups/{backupId} ``` #### 요청 @@ -2755,20 +2781,13 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbInstanceGroupId | URL | UUID | O | | +| backupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2780,15 +2799,7 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", - "replicationType": "STANDALONE", - "dbInstances": [ - { - "dbInstanceStatus": "BEFORE_CREATE" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "jobId": "jobId-example" } ``` @@ -2797,27 +2808,44 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} --- -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 +### 백업 내보내기 ```http -GET /v3.0/db-flavors +POST /v3.0/backups/{backupId}/export ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | + +

예시 +

+ +```json +{ + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -2829,11 +2857,7 @@ GET /v3.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "vcpus": 1 - } - ] + "jobId": "jobId-example" } ``` @@ -2842,23 +2866,93 @@ GET /v3.0/db-flavors --- -## storages - -### 스토리지 목록 보기 +### 백업 복원하기 ```http -GET /v3.0/storages +POST /v3.0/backups/{backupId}/restore ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storages | Body | Array | 스토리지 목록 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -2870,7 +2964,7 @@ GET /v3.0/storages "resultMessage": "SUCCESS", "isSuccessful": true }, - "storages": [] + "jobId": "jobId-example" } ``` @@ -2879,12 +2973,21 @@ GET /v3.0/storages --- -## 네트워크 +## DB 보안 그룹 -### 서브넷 목록 보기 +### DB 보안 그룹 진행 상태 + +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | + +### DB 보안 그룹 목록 보기 ```http -GET /v3.0/network/subnets +GET /v3.0/db-security-groups ``` #### 요청 @@ -2895,12 +2998,13 @@ GET /v3.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -2912,9 +3016,9 @@ GET /v3.0/network/subnets "resultMessage": "SUCCESS", "isSuccessful": true }, - "subnets": [ + "dbSecurityGroups": [ { - "availableIpCount": 1 + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2925,23 +3029,51 @@ GET /v3.0/network/subnets --- -## 데이터 스토리지 - -### 스토리지 타입 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v3.0/storage-types +POST /v3.0/db-security-groups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ + { + "description": "description-example" + } + ] +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storageTypes | Body | Array | 스토리지 타입 목록 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -2953,7 +3085,7 @@ GET /v3.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -2962,41 +3094,63 @@ GET /v3.0/storage-types --- -## 모니터링 - -### 통계 정보 조회 +### DB 보안 그룹 삭제하기 ```http -GET /v3.0/metric-statistics +DELETE /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 이 API는 응답 본문을 반환하지 않습니다. --- -### Metric 목록 보기 +### DB 보안 그룹 상세 보기 ```http -GET /v3.0/metrics +GET /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | String | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| dbSecurityGroup | Body | Object | DB 보안 그룹 | +| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | +| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | +| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | +| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | +| dbSecurityGroup.rules.cidr | Body | String | CIDR | +| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | +| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3008,11 +3162,19 @@ GET /v3.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "unit": "unit-example" - } - ] + "dbSecurityGroup": { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -3021,73 +3183,43 @@ GET /v3.0/metrics --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | - -### 백업 목록 조회 +### DB 보안 그룹 수정하기 ```http -GET /v3.0/backups +PUT /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| backups.createdYmdt | Body | DateTime | 생성 일시 | -| backups.updatedYmdt | Body | DateTime | 수정 일시 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "backups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 백업 삭제하기 +### DB 보안 그룹 규칙 삭제하기 ```http -DELETE /v3.0/backups/{backupId} +DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 @@ -3096,7 +3228,8 @@ DELETE /v3.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | #### 응답 @@ -3123,33 +3256,40 @@ DELETE /v3.0/backups/{backupId} --- -### 백업 내보내기 +### DB 보안 그룹 규칙 생성하기 ```http -POST /v3.0/backups/{backupId}/export +POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | -| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |
예시

```json { - "tenantId": "tenantId-example", - "username": "username-example", - "password": "password-example", - "targetContainer": "targetContainer-example", - "objectPath": "objectPath-example" + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3181,82 +3321,41 @@ POST /v3.0/backups/{backupId}/export --- -### 백업 복원하기 +### DB 보안 그룹 규칙 수정하기 ```http -POST /v3.0/backups/{backupId}/restore +PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | -| storage | Body | Object | O | 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 스토리지 타입 | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "dbInstanceName": "dbInstanceName", - "description": "description-example", - "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbPort": 1, - "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbSecurityGroupIds": [], - "userGroupIds": [], - "useHighAvailability": false, - "pingInterval": 3, - "useDefaultNotification": false, - "useDeletionProtection": false, - "network": { - "subnetId": "550e8400-e29b-41d4-a716-446655440000", - "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" - }, - "storage": { - "storageType": "ENUM_VALUE", - "storageSize": 20 + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 }, - "backup": { - "backupPeriod": 0, - "backupRetryCount": 0, - "ftwrlWaitTimeout": 1800, - "replicationRegion": "KR1", - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3288,12 +3387,12 @@ POST /v3.0/backups/{backupId}/restore --- -## 사용자 그룹 +## 파라미터 그룹 -### 사용자 그룹 목록 보기 +### 파라미터 그룹 목록 보기 ```http -GET /v3.0/user-groups +GET /v3.0/parameter-groups ``` #### 요청 @@ -3304,11 +3403,14 @@ GET /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시 | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3320,7 +3422,7 @@ GET /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "parameterGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3333,28 +3435,28 @@ GET /v3.0/user-groups --- -### 사용자 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v3.0/user-groups +POST /v3.0/parameter-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAllYN": false + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -3365,7 +3467,7 @@ POST /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -3377,7 +3479,7 @@ POST /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3386,10 +3488,10 @@ POST /v3.0/user-groups --- -### 사용자 그룹 삭제하기 +### 파라미터 그룹 삭제하기 ```http -DELETE /v3.0/user-groups/{userGroupId} +DELETE /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -3398,7 +3500,7 @@ DELETE /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -3406,10 +3508,10 @@ DELETE /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 상세 보기 +### 파라미터 그룹 상세 보기 ```http -GET /v3.0/user-groups/{userGroupId} +GET /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -3418,17 +3520,27 @@ GET /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -3442,12 +3554,14 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", - "userGroupName": "userGroupName-example", - "userGroupTypeCode": "ENTIRE", - "members": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "memberId": "memberId-example" + "applyType": "BOTH" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -3460,30 +3574,28 @@ GET /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 수정하기 +### 파라미터 그룹 수정하기 ```http -PUT /v3.0/user-groups/{userGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAllYN": false -} + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} ```

@@ -3495,30 +3607,38 @@ PUT /v3.0/user-groups/{userGroupId} --- -## 알림 그룹 - -### 알림 그룹 목록 보기 +### 파라미터 그룹 복사하기 ```http -GET /v3.0/notification-groups +POST /v3.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -3530,11 +3650,7 @@ GET /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3543,34 +3659,31 @@ GET /v3.0/notification-groups --- -### 알림 그룹 생성하기 +### 파라미터 수정하기 ```http -POST /v3.0/notification-groups +PUT /v3.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "notificationGroupName": "notificationGroupName", - "notifyEmail": true, - "notifySms": true, - "isEnabled": true, - "dbInstanceIds": [], - "userGroupIds": [] + "modifiedParameters": [ + { + "value": "value-example" + } + ] } ``` @@ -3579,33 +3692,14 @@ POST /v3.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | - -

예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "notificationGroupId": "notificationGroupId-example" -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 재설정하기 ```http -DELETE /v3.0/notification-groups/{notificationGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId}/reset ``` #### 요청 @@ -3614,7 +3708,7 @@ DELETE /v3.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -3622,37 +3716,27 @@ DELETE /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 상세 보기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -GET /v3.0/notification-groups/{notificationGroupId} +GET /v3.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | | userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3664,23 +3748,11 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstances": [ - { - "dbInstanceName": "dbInstanceName-example" - } - ], "userGroups": [ { - "userGroupName": "userGroupName-example" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -3689,35 +3761,28 @@ GET /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v3.0/notification-groups/{notificationGroupId} +POST /v3.0/user-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstanceIds": [], - "userGroupIds": [] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -3726,42 +3791,9 @@ PUT /v3.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. - ---- - -## 이벤트 - -### 이벤트 카테고리 - -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. - -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | - -### 구독 가능한 이벤트 코드 목록 보기 - -```http -GET /v3.0/event-codes -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

@@ -3773,11 +3805,7 @@ GET /v3.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ - { - "eventCategoryType": "ALL" - } - ] + "userGroupId": "userGroupId-example" } ``` @@ -3786,30 +3814,51 @@ GET /v3.0/event-codes --- -### 이벤트 목록 조회 +### 사용자 그룹 삭제하기 ```http -GET /v3.0/events +DELETE /v3.0/user-groups/{userGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 + +```http +GET /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메세지 목록 | -| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | -| events.messages.message | Body | String | 이벤트 메세지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 | +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3821,12 +3870,16 @@ GET /v3.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "events": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "eventYmdt": "2023-12-31T15:00:00+09:00" + "memberId": "memberId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3835,12 +3888,47 @@ GET /v3.0/events --- -## 이벤트 구독 +### 사용자 그룹 수정하기 -### 이벤트 구독 목록 조회 +```http +PUT /v3.0/user-groups/{userGroupId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | + +

예시 +

+ +```json +{ + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 알림 그룹 + +### 알림 그룹 목록 보기 ```http -GET /v3.0/event-subscriptions +GET /v3.0/notification-groups ``` #### 요청 @@ -3851,20 +3939,14 @@ GET /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3876,10 +3958,9 @@ GET /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "eventSubscriptions": [ + "notificationGroups": [ { - "createdYmdt": "2023-12-31T15:00:00+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -3890,43 +3971,33 @@ GET /v3.0/event-subscriptions --- -### 이벤트 구독 생성하기 +### 알림 그룹 생성하기 ```http -POST /v3.0/event-subscriptions +POST /v3.0/notification-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |

예시

```json { - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], "userGroupIds": [] } ``` @@ -3938,7 +4009,7 @@ POST /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3950,7 +4021,7 @@ POST /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3959,10 +4030,10 @@ POST /v3.0/event-subscriptions --- -### 이벤트 구독 삭제하기 +### 알림 그룹 삭제하기 ```http -DELETE /v3.0/event-subscriptions/{eventSubscriptionId} +DELETE /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -3971,7 +4042,7 @@ DELETE /v3.0/event-subscriptions/{eventSubscriptionId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | +| notificationGroupId | URL | UUID | O | | #### 응답 @@ -3979,135 +4050,120 @@ DELETE /v3.0/event-subscriptions/{eventSubscriptionId} --- -### 이벤트 구독 수정하기 +### 알림 그룹 상세 보기 ```http -PUT /v3.0/event-subscriptions/{eventSubscriptionId} +GET /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 +이 API는 요청 본문을 요구하지 않습니다. + | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| notificationGroupId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, - "eventCodes": [], - "sources": [ + "isEnabled": false, + "dbInstances": [ { - "eventCategoryType": "ALL" + "dbInstanceName": "dbInstanceName-example" } ], - "userGroupIds": [] + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### 알림 그룹 수정하기 ```http -GET /v3.0/jobs/{jobId} +PUT /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| jobId | URL | UUID | O | | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "jobId": "jobId-example", - "jobStatus": "DELETED", - "resourceRelations": [ - { - "resourceId": "resourceId-example" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 파라미터 그룹 +## 모니터링 -### 파라미터 그룹 목록 보기 +### 통계 정보 조회 ```http -GET /v3.0/parameter-groups +GET /v3.0/metric-statistics ``` #### 요청 @@ -4116,73 +4172,27 @@ GET /v3.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "parameterGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 생성하기 +### Metric 목록 보기 ```http -POST /v3.0/parameter-groups +GET /v3.0/metrics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -| dbVersion | Body | Enum | O | DB 엔진 유형 | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example", - "dbVersion": "ENUM_VALUE" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -4194,7 +4204,11 @@ POST /v3.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "metrics": [ + { + "unit": "unit-example" + } + ] } ``` @@ -4203,61 +4217,38 @@ POST /v3.0/parameter-groups --- -### 파라미터 그룹 삭제하기 - -```http -DELETE /v3.0/parameter-groups/{parameterGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +## 이벤트 -#### 응답 +### 이벤트 카테고리 -이 API는 응답 본문을 반환하지 않습니다. +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. ---- +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -### 파라미터 그룹 상세 보기 +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/event-codes ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | -| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |

예시

@@ -4269,18 +4260,11 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", - "parameterGroupName": "parameterGroupName-example", - "description": "description-example", - "dbVersion": "ENUM_VALUE", - "parameterGroupStatus": "STABLE", - "parameters": [ + "eventCodes": [ { - "applyType": "BOTH" + "eventCategoryType": "ALL" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4289,71 +4273,85 @@ GET /v3.0/parameter-groups/{parameterGroupId} --- -### 파라미터 그룹 수정하기 +### 이벤트 목록 조회 ```http -PUT /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/events ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

```json { - "parameterGroupName": "parameterGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "events": [ + { + "eventYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### 파라미터 그룹 복사하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v3.0/parameter-groups/{parameterGroupId}/copy +GET /v3.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -4365,7 +4363,12 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -4374,31 +4377,44 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy --- -### 파라미터 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/parameters +POST /v3.0/event-subscriptions ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "value": "value-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ``` @@ -4407,51 +4423,9 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. - ---- - -### 파라미터 그룹 재설정하기 - -```http -PUT /v3.0/parameter-groups/{parameterGroupId}/reset -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- - -## 프로젝트 정보 - -### 프로젝트 멤버 목록 보기 - -```http -GET /v3.0/project/members -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -4463,11 +4437,7 @@ GET /v3.0/project/members "resultMessage": "SUCCESS", "isSuccessful": true }, - "members": [ - { - "phoneNumber": "phoneNumber-example" - } - ] + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -4476,44 +4446,74 @@ GET /v3.0/project/members --- -### 리전 목록 보기 +### 이벤트 구독 삭제하기 ```http -GET /v3.0/project/regions +DELETE /v3.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v3.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "regions": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "isEnabled": false + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- diff --git a/ko/api-guide-v3.0-ncgn.md b/ko/api-guide-v3.0-ncgn.md index e299f1df..cac56d50 100644 --- a/ko/api-guide-v3.0-ncgn.md +++ b/ko/api-guide-v3.0-ncgn.md @@ -4,13 +4,16 @@ ### 인증 및 권한 -RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. -발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. +RDS for MySQL 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](/nhncloud/ko/public-api/user-access-key)를 참고하세요. +생성된 Key는 Appkey와 함께 요청 Header에 포함해야 합니다. | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| | X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +| X-TC-AUTHENTICATION-ID | Header | String | O | API 보안 설정 메뉴의 User Access Key ID | +| X-TC-AUTHENTICATION-SECRET | Header | String | O | API 보안 설정 메뉴의 Secret Access Key | 또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. @@ -47,7 +50,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | - ### API 엔드포인트 | 리전 | 엔드포인트 | @@ -87,21 +89,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 프로젝트 정보 -### DB 보안 그룹 목록 보기 +### 프로젝트 멤버 목록 보기 ```http -GET /v3.0/db-security-groups +GET /v3.0/project/members ``` #### 요청 @@ -112,13 +105,11 @@ GET /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -130,9 +121,9 @@ GET /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "members": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -143,51 +134,23 @@ GET /v3.0/db-security-groups --- -### DB 보안 그룹 생성하기 +### 리전 목록 보기 ```http -POST /v3.0/db-security-groups +GET /v3.0/project/regions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| rules.cidr | Body | String | O | CIDR | -| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | - -

예시 -

- -```json -{ - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example", - "rules": [ - { - "description": "description-example" - } - ] -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |
예시

@@ -199,7 +162,11 @@ POST /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "regions": [ + { + "isEnabled": false + } + ] } ``` @@ -208,63 +175,27 @@ POST /v3.0/db-security-groups --- -### DB 보안 그룹 삭제하기 - -```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- +## DB 인스턴스 사양 -### DB 보안 그룹 상세 보기 +### DB 인스턴스 사양 목록 보기 ```http -GET /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/db-flavors ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroup | Body | Object | DB 보안 그룹 | -| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | -| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | -| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | -| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | -| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | -| dbSecurityGroup.rules.cidr | Body | String | CIDR | -| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | -| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 | +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |

예시

@@ -276,19 +207,11 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "dbSecurityGroupId-example", - "dbSecurityGroupName": "dbSecurityGroupName-example", - "description": "description-example", - "progressStatus": "NONE", - "rules": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ``` @@ -297,59 +220,72 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 수정하기 +## 네트워크 + +### 서브넷 목록 보기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/network/subnets ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### DB 보안 그룹 규칙 삭제하기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v3.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleIds | Query | String | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |
예시

@@ -361,7 +297,11 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "dbVersions": [ + { + "restorableFromObs": false + } + ] } ``` @@ -370,51 +310,23 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 생성하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v3.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| storageTypes | Body | Array | 스토리지 타입 목록 |
예시

@@ -426,7 +338,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "storageTypes": [] } ``` @@ -435,52 +347,85 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 수정하기 +### 스토리지 목록 보기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +GET /v3.0/storages ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storages | Body | Array | 스토리지 목록 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "cidr-example", - "description": "description-example" + "storages": [] } ```

+--- + +## 작업 정보 + +### 작업 상태 + +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 + +```http +GET /v3.0/jobs/{jobId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -492,7 +437,15 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ + { + "resourceId": "resourceId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -501,12 +454,12 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} --- -## DB 엔진 +## DB 인스턴스 그룹 -### DB 엔진 목록 보기 +### DB 인스턴스 그룹 목록 보기 ```http -GET /v3.0/db-versions +GET /v3.0/db-instance-groups ``` #### 요청 @@ -517,10 +470,11 @@ GET /v3.0/db-versions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -532,9 +486,9 @@ GET /v3.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ + "dbInstanceGroups": [ { - "restorableFromObs": false + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -545,6 +499,60 @@ GET /v3.0/db-versions --- +### DB 인스턴스 그룹 상세 보기 + +```http +GET /v3.0/db-instance-groups/{dbInstanceGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ +--- + ## DB 인스턴스 ### DB 인스턴스 상태 @@ -2698,12 +2706,22 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info --- -## DB 인스턴스 그룹 +## 백업 -### DB 인스턴스 그룹 목록 보기 +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | + +### 백업 목록 조회 ```http -GET /v3.0/db-instance-groups +GET /v3.0/backups ``` #### 요청 @@ -2714,11 +2732,18 @@ GET /v3.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2730,7 +2755,8 @@ GET /v3.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ + "totalCounts": 1, + "backups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -2743,10 +2769,10 @@ GET /v3.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +### 백업 삭제하기 ```http -GET /v3.0/db-instance-groups/{dbInstanceGroupId} +DELETE /v3.0/backups/{backupId} ``` #### 요청 @@ -2755,20 +2781,13 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbInstanceGroupId | URL | UUID | O | | +| backupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2780,15 +2799,7 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", - "replicationType": "STANDALONE", - "dbInstances": [ - { - "dbInstanceStatus": "BEFORE_CREATE" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "jobId": "jobId-example" } ``` @@ -2797,27 +2808,44 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} --- -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 +### 백업 내보내기 ```http -GET /v3.0/db-flavors +POST /v3.0/backups/{backupId}/export ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | + +

예시 +

+ +```json +{ + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -2829,11 +2857,7 @@ GET /v3.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "vcpus": 1 - } - ] + "jobId": "jobId-example" } ``` @@ -2842,23 +2866,93 @@ GET /v3.0/db-flavors --- -## storages - -### 스토리지 목록 보기 +### 백업 복원하기 ```http -GET /v3.0/storages +POST /v3.0/backups/{backupId}/restore ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storages | Body | Array | 스토리지 목록 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -2870,7 +2964,7 @@ GET /v3.0/storages "resultMessage": "SUCCESS", "isSuccessful": true }, - "storages": [] + "jobId": "jobId-example" } ``` @@ -2879,12 +2973,21 @@ GET /v3.0/storages --- -## 네트워크 +## DB 보안 그룹 -### 서브넷 목록 보기 +### DB 보안 그룹 진행 상태 + +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | + +### DB 보안 그룹 목록 보기 ```http -GET /v3.0/network/subnets +GET /v3.0/db-security-groups ``` #### 요청 @@ -2895,12 +2998,13 @@ GET /v3.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -2912,9 +3016,9 @@ GET /v3.0/network/subnets "resultMessage": "SUCCESS", "isSuccessful": true }, - "subnets": [ + "dbSecurityGroups": [ { - "availableIpCount": 1 + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2925,23 +3029,51 @@ GET /v3.0/network/subnets --- -## 데이터 스토리지 - -### 스토리지 타입 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v3.0/storage-types +POST /v3.0/db-security-groups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ + { + "description": "description-example" + } + ] +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storageTypes | Body | Array | 스토리지 타입 목록 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -2953,7 +3085,7 @@ GET /v3.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -2962,41 +3094,63 @@ GET /v3.0/storage-types --- -## 모니터링 - -### 통계 정보 조회 +### DB 보안 그룹 삭제하기 ```http -GET /v3.0/metric-statistics +DELETE /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 이 API는 응답 본문을 반환하지 않습니다. --- -### Metric 목록 보기 +### DB 보안 그룹 상세 보기 ```http -GET /v3.0/metrics +GET /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | String | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| dbSecurityGroup | Body | Object | DB 보안 그룹 | +| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | +| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | +| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | +| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | +| dbSecurityGroup.rules.cidr | Body | String | CIDR | +| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | +| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3008,11 +3162,19 @@ GET /v3.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "unit": "unit-example" - } - ] + "dbSecurityGroup": { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -3021,73 +3183,43 @@ GET /v3.0/metrics --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | - -### 백업 목록 조회 +### DB 보안 그룹 수정하기 ```http -GET /v3.0/backups +PUT /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| backups.createdYmdt | Body | DateTime | 생성 일시 | -| backups.updatedYmdt | Body | DateTime | 수정 일시 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "backups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 백업 삭제하기 +### DB 보안 그룹 규칙 삭제하기 ```http -DELETE /v3.0/backups/{backupId} +DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 @@ -3096,7 +3228,8 @@ DELETE /v3.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | #### 응답 @@ -3123,33 +3256,40 @@ DELETE /v3.0/backups/{backupId} --- -### 백업 내보내기 +### DB 보안 그룹 규칙 생성하기 ```http -POST /v3.0/backups/{backupId}/export +POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | -| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |
예시

```json { - "tenantId": "tenantId-example", - "username": "username-example", - "password": "password-example", - "targetContainer": "targetContainer-example", - "objectPath": "objectPath-example" + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3181,82 +3321,41 @@ POST /v3.0/backups/{backupId}/export --- -### 백업 복원하기 +### DB 보안 그룹 규칙 수정하기 ```http -POST /v3.0/backups/{backupId}/restore +PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | -| storage | Body | Object | O | 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 스토리지 타입 | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "dbInstanceName": "dbInstanceName", - "description": "description-example", - "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbPort": 1, - "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbSecurityGroupIds": [], - "userGroupIds": [], - "useHighAvailability": false, - "pingInterval": 3, - "useDefaultNotification": false, - "useDeletionProtection": false, - "network": { - "subnetId": "550e8400-e29b-41d4-a716-446655440000", - "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" - }, - "storage": { - "storageType": "ENUM_VALUE", - "storageSize": 20 + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 }, - "backup": { - "backupPeriod": 0, - "backupRetryCount": 0, - "ftwrlWaitTimeout": 1800, - "replicationRegion": "KR1", - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3288,12 +3387,12 @@ POST /v3.0/backups/{backupId}/restore --- -## 사용자 그룹 +## 파라미터 그룹 -### 사용자 그룹 목록 보기 +### 파라미터 그룹 목록 보기 ```http -GET /v3.0/user-groups +GET /v3.0/parameter-groups ``` #### 요청 @@ -3304,11 +3403,14 @@ GET /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시 | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3320,7 +3422,7 @@ GET /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "parameterGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3333,28 +3435,28 @@ GET /v3.0/user-groups --- -### 사용자 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v3.0/user-groups +POST /v3.0/parameter-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAllYN": false + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -3365,7 +3467,7 @@ POST /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -3377,7 +3479,7 @@ POST /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3386,10 +3488,10 @@ POST /v3.0/user-groups --- -### 사용자 그룹 삭제하기 +### 파라미터 그룹 삭제하기 ```http -DELETE /v3.0/user-groups/{userGroupId} +DELETE /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -3398,7 +3500,7 @@ DELETE /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -3406,10 +3508,10 @@ DELETE /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 상세 보기 +### 파라미터 그룹 상세 보기 ```http -GET /v3.0/user-groups/{userGroupId} +GET /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -3418,17 +3520,27 @@ GET /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -3442,12 +3554,14 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", - "userGroupName": "userGroupName-example", - "userGroupTypeCode": "ENTIRE", - "members": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "memberId": "memberId-example" + "applyType": "BOTH" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -3460,30 +3574,28 @@ GET /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 수정하기 +### 파라미터 그룹 수정하기 ```http -PUT /v3.0/user-groups/{userGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAllYN": false -} + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} ```

@@ -3495,30 +3607,38 @@ PUT /v3.0/user-groups/{userGroupId} --- -## 알림 그룹 - -### 알림 그룹 목록 보기 +### 파라미터 그룹 복사하기 ```http -GET /v3.0/notification-groups +POST /v3.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -3530,11 +3650,7 @@ GET /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3543,34 +3659,31 @@ GET /v3.0/notification-groups --- -### 알림 그룹 생성하기 +### 파라미터 수정하기 ```http -POST /v3.0/notification-groups +PUT /v3.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "notificationGroupName": "notificationGroupName", - "notifyEmail": true, - "notifySms": true, - "isEnabled": true, - "dbInstanceIds": [], - "userGroupIds": [] + "modifiedParameters": [ + { + "value": "value-example" + } + ] } ``` @@ -3579,33 +3692,14 @@ POST /v3.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | - -

예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "notificationGroupId": "notificationGroupId-example" -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 재설정하기 ```http -DELETE /v3.0/notification-groups/{notificationGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId}/reset ``` #### 요청 @@ -3614,7 +3708,7 @@ DELETE /v3.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -3622,37 +3716,27 @@ DELETE /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 상세 보기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -GET /v3.0/notification-groups/{notificationGroupId} +GET /v3.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | | userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3664,23 +3748,11 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstances": [ - { - "dbInstanceName": "dbInstanceName-example" - } - ], "userGroups": [ { - "userGroupName": "userGroupName-example" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -3689,35 +3761,28 @@ GET /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v3.0/notification-groups/{notificationGroupId} +POST /v3.0/user-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstanceIds": [], - "userGroupIds": [] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -3726,42 +3791,9 @@ PUT /v3.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. - ---- - -## 이벤트 - -### 이벤트 카테고리 - -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. - -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | - -### 구독 가능한 이벤트 코드 목록 보기 - -```http -GET /v3.0/event-codes -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

@@ -3773,11 +3805,7 @@ GET /v3.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ - { - "eventCategoryType": "ALL" - } - ] + "userGroupId": "userGroupId-example" } ``` @@ -3786,30 +3814,51 @@ GET /v3.0/event-codes --- -### 이벤트 목록 조회 +### 사용자 그룹 삭제하기 ```http -GET /v3.0/events +DELETE /v3.0/user-groups/{userGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 + +```http +GET /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메세지 목록 | -| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | -| events.messages.message | Body | String | 이벤트 메세지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 | +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3821,12 +3870,16 @@ GET /v3.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "events": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "eventYmdt": "2023-12-31T15:00:00+09:00" + "memberId": "memberId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3835,12 +3888,47 @@ GET /v3.0/events --- -## 이벤트 구독 +### 사용자 그룹 수정하기 -### 이벤트 구독 목록 조회 +```http +PUT /v3.0/user-groups/{userGroupId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | + +

예시 +

+ +```json +{ + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 알림 그룹 + +### 알림 그룹 목록 보기 ```http -GET /v3.0/event-subscriptions +GET /v3.0/notification-groups ``` #### 요청 @@ -3851,20 +3939,14 @@ GET /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3876,10 +3958,9 @@ GET /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "eventSubscriptions": [ + "notificationGroups": [ { - "createdYmdt": "2023-12-31T15:00:00+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -3890,43 +3971,33 @@ GET /v3.0/event-subscriptions --- -### 이벤트 구독 생성하기 +### 알림 그룹 생성하기 ```http -POST /v3.0/event-subscriptions +POST /v3.0/notification-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |

예시

```json { - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], "userGroupIds": [] } ``` @@ -3938,7 +4009,7 @@ POST /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3950,7 +4021,7 @@ POST /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3959,10 +4030,10 @@ POST /v3.0/event-subscriptions --- -### 이벤트 구독 삭제하기 +### 알림 그룹 삭제하기 ```http -DELETE /v3.0/event-subscriptions/{eventSubscriptionId} +DELETE /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -3971,7 +4042,7 @@ DELETE /v3.0/event-subscriptions/{eventSubscriptionId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | +| notificationGroupId | URL | UUID | O | | #### 응답 @@ -3979,135 +4050,120 @@ DELETE /v3.0/event-subscriptions/{eventSubscriptionId} --- -### 이벤트 구독 수정하기 +### 알림 그룹 상세 보기 ```http -PUT /v3.0/event-subscriptions/{eventSubscriptionId} +GET /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 +이 API는 요청 본문을 요구하지 않습니다. + | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| notificationGroupId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, - "eventCodes": [], - "sources": [ + "isEnabled": false, + "dbInstances": [ { - "eventCategoryType": "ALL" + "dbInstanceName": "dbInstanceName-example" } ], - "userGroupIds": [] + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### 알림 그룹 수정하기 ```http -GET /v3.0/jobs/{jobId} +PUT /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| jobId | URL | UUID | O | | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "jobId": "jobId-example", - "jobStatus": "DELETED", - "resourceRelations": [ - { - "resourceId": "resourceId-example" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 파라미터 그룹 +## 모니터링 -### 파라미터 그룹 목록 보기 +### 통계 정보 조회 ```http -GET /v3.0/parameter-groups +GET /v3.0/metric-statistics ``` #### 요청 @@ -4116,73 +4172,27 @@ GET /v3.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "parameterGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 생성하기 +### Metric 목록 보기 ```http -POST /v3.0/parameter-groups +GET /v3.0/metrics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -| dbVersion | Body | Enum | O | DB 엔진 유형 | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example", - "dbVersion": "ENUM_VALUE" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -4194,7 +4204,11 @@ POST /v3.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "metrics": [ + { + "unit": "unit-example" + } + ] } ``` @@ -4203,61 +4217,38 @@ POST /v3.0/parameter-groups --- -### 파라미터 그룹 삭제하기 - -```http -DELETE /v3.0/parameter-groups/{parameterGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +## 이벤트 -#### 응답 +### 이벤트 카테고리 -이 API는 응답 본문을 반환하지 않습니다. +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. ---- +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -### 파라미터 그룹 상세 보기 +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/event-codes ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | -| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |

예시

@@ -4269,18 +4260,11 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", - "parameterGroupName": "parameterGroupName-example", - "description": "description-example", - "dbVersion": "ENUM_VALUE", - "parameterGroupStatus": "STABLE", - "parameters": [ + "eventCodes": [ { - "applyType": "BOTH" + "eventCategoryType": "ALL" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4289,71 +4273,85 @@ GET /v3.0/parameter-groups/{parameterGroupId} --- -### 파라미터 그룹 수정하기 +### 이벤트 목록 조회 ```http -PUT /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/events ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

```json { - "parameterGroupName": "parameterGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "events": [ + { + "eventYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### 파라미터 그룹 복사하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v3.0/parameter-groups/{parameterGroupId}/copy +GET /v3.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -4365,7 +4363,12 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -4374,31 +4377,44 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy --- -### 파라미터 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/parameters +POST /v3.0/event-subscriptions ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "value": "value-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ``` @@ -4407,51 +4423,9 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. - ---- - -### 파라미터 그룹 재설정하기 - -```http -PUT /v3.0/parameter-groups/{parameterGroupId}/reset -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- - -## 프로젝트 정보 - -### 프로젝트 멤버 목록 보기 - -```http -GET /v3.0/project/members -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -4463,11 +4437,7 @@ GET /v3.0/project/members "resultMessage": "SUCCESS", "isSuccessful": true }, - "members": [ - { - "phoneNumber": "phoneNumber-example" - } - ] + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -4476,44 +4446,74 @@ GET /v3.0/project/members --- -### 리전 목록 보기 +### 이벤트 구독 삭제하기 ```http -GET /v3.0/project/regions +DELETE /v3.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v3.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "regions": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "isEnabled": false + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- diff --git a/ko/api-guide-v3.0-ngoic.md b/ko/api-guide-v3.0-ngoic.md index ca6096ba..ae07811a 100644 --- a/ko/api-guide-v3.0-ngoic.md +++ b/ko/api-guide-v3.0-ngoic.md @@ -4,13 +4,16 @@ ### 인증 및 권한 -RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. -발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. +RDS for MySQL 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](/nhncloud/ko/public-api/user-access-key)를 참고하세요. +생성된 Key는 Appkey와 함께 요청 Header에 포함해야 합니다. | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| | X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +| X-TC-AUTHENTICATION-ID | Header | String | O | API 보안 설정 메뉴의 User Access Key ID | +| X-TC-AUTHENTICATION-SECRET | Header | String | O | API 보안 설정 메뉴의 Secret Access Key | 또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. @@ -47,7 +50,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | - ### API 엔드포인트 | 리전 | 엔드포인트 | @@ -87,21 +89,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 프로젝트 정보 -### DB 보안 그룹 목록 보기 +### 프로젝트 멤버 목록 보기 ```http -GET /v3.0/db-security-groups +GET /v3.0/project/members ``` #### 요청 @@ -112,13 +105,11 @@ GET /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -130,9 +121,9 @@ GET /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "members": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -143,51 +134,23 @@ GET /v3.0/db-security-groups --- -### DB 보안 그룹 생성하기 +### 리전 목록 보기 ```http -POST /v3.0/db-security-groups +GET /v3.0/project/regions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| rules.cidr | Body | String | O | CIDR | -| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | - -

예시 -

- -```json -{ - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example", - "rules": [ - { - "description": "description-example" - } - ] -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |
예시

@@ -199,7 +162,11 @@ POST /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "regions": [ + { + "isEnabled": false + } + ] } ``` @@ -208,63 +175,27 @@ POST /v3.0/db-security-groups --- -### DB 보안 그룹 삭제하기 - -```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- +## DB 인스턴스 사양 -### DB 보안 그룹 상세 보기 +### DB 인스턴스 사양 목록 보기 ```http -GET /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/db-flavors ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroup | Body | Object | DB 보안 그룹 | -| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | -| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | -| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | -| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | -| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | -| dbSecurityGroup.rules.cidr | Body | String | CIDR | -| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | -| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 | +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |

예시

@@ -276,19 +207,11 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "dbSecurityGroupId-example", - "dbSecurityGroupName": "dbSecurityGroupName-example", - "description": "description-example", - "progressStatus": "NONE", - "rules": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ``` @@ -297,59 +220,72 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 수정하기 +## 네트워크 + +### 서브넷 목록 보기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/network/subnets ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### DB 보안 그룹 규칙 삭제하기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v3.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleIds | Query | String | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |
예시

@@ -361,7 +297,11 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "dbVersions": [ + { + "restorableFromObs": false + } + ] } ``` @@ -370,51 +310,23 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 생성하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v3.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| storageTypes | Body | Array | 스토리지 타입 목록 |
예시

@@ -426,7 +338,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "storageTypes": [] } ``` @@ -435,52 +347,85 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 수정하기 +### 스토리지 목록 보기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +GET /v3.0/storages ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storages | Body | Array | 스토리지 목록 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "cidr-example", - "description": "description-example" + "storages": [] } ```

+--- + +## 작업 정보 + +### 작업 상태 + +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 + +```http +GET /v3.0/jobs/{jobId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -492,7 +437,15 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ + { + "resourceId": "resourceId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -501,12 +454,12 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} --- -## DB 엔진 +## DB 인스턴스 그룹 -### DB 엔진 목록 보기 +### DB 인스턴스 그룹 목록 보기 ```http -GET /v3.0/db-versions +GET /v3.0/db-instance-groups ``` #### 요청 @@ -517,10 +470,11 @@ GET /v3.0/db-versions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -532,9 +486,9 @@ GET /v3.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ + "dbInstanceGroups": [ { - "restorableFromObs": false + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -545,6 +499,60 @@ GET /v3.0/db-versions --- +### DB 인스턴스 그룹 상세 보기 + +```http +GET /v3.0/db-instance-groups/{dbInstanceGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ +--- + ## DB 인스턴스 ### DB 인스턴스 상태 @@ -2698,12 +2706,22 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info --- -## DB 인스턴스 그룹 +## 백업 -### DB 인스턴스 그룹 목록 보기 +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | + +### 백업 목록 조회 ```http -GET /v3.0/db-instance-groups +GET /v3.0/backups ``` #### 요청 @@ -2714,11 +2732,18 @@ GET /v3.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2730,7 +2755,8 @@ GET /v3.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ + "totalCounts": 1, + "backups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -2743,10 +2769,10 @@ GET /v3.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +### 백업 삭제하기 ```http -GET /v3.0/db-instance-groups/{dbInstanceGroupId} +DELETE /v3.0/backups/{backupId} ``` #### 요청 @@ -2755,20 +2781,13 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbInstanceGroupId | URL | UUID | O | | +| backupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2780,15 +2799,7 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", - "replicationType": "STANDALONE", - "dbInstances": [ - { - "dbInstanceStatus": "BEFORE_CREATE" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "jobId": "jobId-example" } ``` @@ -2797,27 +2808,44 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} --- -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 +### 백업 내보내기 ```http -GET /v3.0/db-flavors +POST /v3.0/backups/{backupId}/export ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | + +

예시 +

+ +```json +{ + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -2829,11 +2857,7 @@ GET /v3.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "vcpus": 1 - } - ] + "jobId": "jobId-example" } ``` @@ -2842,23 +2866,93 @@ GET /v3.0/db-flavors --- -## storages - -### 스토리지 목록 보기 +### 백업 복원하기 ```http -GET /v3.0/storages +POST /v3.0/backups/{backupId}/restore ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storages | Body | Array | 스토리지 목록 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -2870,7 +2964,7 @@ GET /v3.0/storages "resultMessage": "SUCCESS", "isSuccessful": true }, - "storages": [] + "jobId": "jobId-example" } ``` @@ -2879,12 +2973,21 @@ GET /v3.0/storages --- -## 네트워크 +## DB 보안 그룹 -### 서브넷 목록 보기 +### DB 보안 그룹 진행 상태 + +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | + +### DB 보안 그룹 목록 보기 ```http -GET /v3.0/network/subnets +GET /v3.0/db-security-groups ``` #### 요청 @@ -2895,12 +2998,13 @@ GET /v3.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -2912,9 +3016,9 @@ GET /v3.0/network/subnets "resultMessage": "SUCCESS", "isSuccessful": true }, - "subnets": [ + "dbSecurityGroups": [ { - "availableIpCount": 1 + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2925,23 +3029,51 @@ GET /v3.0/network/subnets --- -## 데이터 스토리지 - -### 스토리지 타입 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v3.0/storage-types +POST /v3.0/db-security-groups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ + { + "description": "description-example" + } + ] +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storageTypes | Body | Array | 스토리지 타입 목록 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -2953,7 +3085,7 @@ GET /v3.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -2962,41 +3094,63 @@ GET /v3.0/storage-types --- -## 모니터링 - -### 통계 정보 조회 +### DB 보안 그룹 삭제하기 ```http -GET /v3.0/metric-statistics +DELETE /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 이 API는 응답 본문을 반환하지 않습니다. --- -### Metric 목록 보기 +### DB 보안 그룹 상세 보기 ```http -GET /v3.0/metrics +GET /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | String | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| dbSecurityGroup | Body | Object | DB 보안 그룹 | +| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | +| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | +| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | +| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | +| dbSecurityGroup.rules.cidr | Body | String | CIDR | +| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | +| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3008,11 +3162,19 @@ GET /v3.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "unit": "unit-example" - } - ] + "dbSecurityGroup": { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -3021,73 +3183,43 @@ GET /v3.0/metrics --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | - -### 백업 목록 조회 +### DB 보안 그룹 수정하기 ```http -GET /v3.0/backups +PUT /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| backups.createdYmdt | Body | DateTime | 생성 일시 | -| backups.updatedYmdt | Body | DateTime | 수정 일시 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "backups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 백업 삭제하기 +### DB 보안 그룹 규칙 삭제하기 ```http -DELETE /v3.0/backups/{backupId} +DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 @@ -3096,7 +3228,8 @@ DELETE /v3.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | #### 응답 @@ -3123,33 +3256,40 @@ DELETE /v3.0/backups/{backupId} --- -### 백업 내보내기 +### DB 보안 그룹 규칙 생성하기 ```http -POST /v3.0/backups/{backupId}/export +POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | -| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |
예시

```json { - "tenantId": "tenantId-example", - "username": "username-example", - "password": "password-example", - "targetContainer": "targetContainer-example", - "objectPath": "objectPath-example" + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3181,82 +3321,41 @@ POST /v3.0/backups/{backupId}/export --- -### 백업 복원하기 +### DB 보안 그룹 규칙 수정하기 ```http -POST /v3.0/backups/{backupId}/restore +PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | -| storage | Body | Object | O | 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 스토리지 타입 | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "dbInstanceName": "dbInstanceName", - "description": "description-example", - "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbPort": 1, - "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbSecurityGroupIds": [], - "userGroupIds": [], - "useHighAvailability": false, - "pingInterval": 3, - "useDefaultNotification": false, - "useDeletionProtection": false, - "network": { - "subnetId": "550e8400-e29b-41d4-a716-446655440000", - "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" - }, - "storage": { - "storageType": "ENUM_VALUE", - "storageSize": 20 + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 }, - "backup": { - "backupPeriod": 0, - "backupRetryCount": 0, - "ftwrlWaitTimeout": 1800, - "replicationRegion": "KR4", - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3288,12 +3387,12 @@ POST /v3.0/backups/{backupId}/restore --- -## 사용자 그룹 +## 파라미터 그룹 -### 사용자 그룹 목록 보기 +### 파라미터 그룹 목록 보기 ```http -GET /v3.0/user-groups +GET /v3.0/parameter-groups ``` #### 요청 @@ -3304,11 +3403,14 @@ GET /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시 | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3320,7 +3422,7 @@ GET /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "parameterGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3333,28 +3435,28 @@ GET /v3.0/user-groups --- -### 사용자 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v3.0/user-groups +POST /v3.0/parameter-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAllYN": false + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -3365,7 +3467,7 @@ POST /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -3377,7 +3479,7 @@ POST /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3386,10 +3488,10 @@ POST /v3.0/user-groups --- -### 사용자 그룹 삭제하기 +### 파라미터 그룹 삭제하기 ```http -DELETE /v3.0/user-groups/{userGroupId} +DELETE /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -3398,7 +3500,7 @@ DELETE /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -3406,10 +3508,10 @@ DELETE /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 상세 보기 +### 파라미터 그룹 상세 보기 ```http -GET /v3.0/user-groups/{userGroupId} +GET /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -3418,17 +3520,27 @@ GET /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -3442,12 +3554,14 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", - "userGroupName": "userGroupName-example", - "userGroupTypeCode": "ENTIRE", - "members": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "memberId": "memberId-example" + "applyType": "BOTH" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -3460,30 +3574,28 @@ GET /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 수정하기 +### 파라미터 그룹 수정하기 ```http -PUT /v3.0/user-groups/{userGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAllYN": false -} + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} ```

@@ -3495,30 +3607,38 @@ PUT /v3.0/user-groups/{userGroupId} --- -## 알림 그룹 - -### 알림 그룹 목록 보기 +### 파라미터 그룹 복사하기 ```http -GET /v3.0/notification-groups +POST /v3.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -3530,11 +3650,7 @@ GET /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3543,34 +3659,31 @@ GET /v3.0/notification-groups --- -### 알림 그룹 생성하기 +### 파라미터 수정하기 ```http -POST /v3.0/notification-groups +PUT /v3.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "notificationGroupName": "notificationGroupName", - "notifyEmail": true, - "notifySms": true, - "isEnabled": true, - "dbInstanceIds": [], - "userGroupIds": [] + "modifiedParameters": [ + { + "value": "value-example" + } + ] } ``` @@ -3579,33 +3692,14 @@ POST /v3.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | - -

예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "notificationGroupId": "notificationGroupId-example" -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 재설정하기 ```http -DELETE /v3.0/notification-groups/{notificationGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId}/reset ``` #### 요청 @@ -3614,7 +3708,7 @@ DELETE /v3.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -3622,37 +3716,27 @@ DELETE /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 상세 보기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -GET /v3.0/notification-groups/{notificationGroupId} +GET /v3.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | | userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3664,23 +3748,11 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstances": [ - { - "dbInstanceName": "dbInstanceName-example" - } - ], "userGroups": [ { - "userGroupName": "userGroupName-example" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -3689,35 +3761,28 @@ GET /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v3.0/notification-groups/{notificationGroupId} +POST /v3.0/user-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstanceIds": [], - "userGroupIds": [] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -3726,42 +3791,9 @@ PUT /v3.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. - ---- - -## 이벤트 - -### 이벤트 카테고리 - -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. - -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | - -### 구독 가능한 이벤트 코드 목록 보기 - -```http -GET /v3.0/event-codes -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

@@ -3773,11 +3805,7 @@ GET /v3.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ - { - "eventCategoryType": "ALL" - } - ] + "userGroupId": "userGroupId-example" } ``` @@ -3786,30 +3814,51 @@ GET /v3.0/event-codes --- -### 이벤트 목록 조회 +### 사용자 그룹 삭제하기 ```http -GET /v3.0/events +DELETE /v3.0/user-groups/{userGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 + +```http +GET /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메세지 목록 | -| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | -| events.messages.message | Body | String | 이벤트 메세지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 | +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3821,12 +3870,16 @@ GET /v3.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "events": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "eventYmdt": "2023-12-31T15:00:00+09:00" + "memberId": "memberId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3835,12 +3888,47 @@ GET /v3.0/events --- -## 이벤트 구독 +### 사용자 그룹 수정하기 -### 이벤트 구독 목록 조회 +```http +PUT /v3.0/user-groups/{userGroupId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | + +

예시 +

+ +```json +{ + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 알림 그룹 + +### 알림 그룹 목록 보기 ```http -GET /v3.0/event-subscriptions +GET /v3.0/notification-groups ``` #### 요청 @@ -3851,20 +3939,14 @@ GET /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3876,10 +3958,9 @@ GET /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "eventSubscriptions": [ + "notificationGroups": [ { - "createdYmdt": "2023-12-31T15:00:00+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -3890,43 +3971,33 @@ GET /v3.0/event-subscriptions --- -### 이벤트 구독 생성하기 +### 알림 그룹 생성하기 ```http -POST /v3.0/event-subscriptions +POST /v3.0/notification-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |

예시

```json { - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], "userGroupIds": [] } ``` @@ -3938,7 +4009,7 @@ POST /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3950,7 +4021,7 @@ POST /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3959,10 +4030,10 @@ POST /v3.0/event-subscriptions --- -### 이벤트 구독 삭제하기 +### 알림 그룹 삭제하기 ```http -DELETE /v3.0/event-subscriptions/{eventSubscriptionId} +DELETE /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -3971,7 +4042,7 @@ DELETE /v3.0/event-subscriptions/{eventSubscriptionId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | +| notificationGroupId | URL | UUID | O | | #### 응답 @@ -3979,135 +4050,120 @@ DELETE /v3.0/event-subscriptions/{eventSubscriptionId} --- -### 이벤트 구독 수정하기 +### 알림 그룹 상세 보기 ```http -PUT /v3.0/event-subscriptions/{eventSubscriptionId} +GET /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 +이 API는 요청 본문을 요구하지 않습니다. + | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| notificationGroupId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, - "eventCodes": [], - "sources": [ + "isEnabled": false, + "dbInstances": [ { - "eventCategoryType": "ALL" + "dbInstanceName": "dbInstanceName-example" } ], - "userGroupIds": [] + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### 알림 그룹 수정하기 ```http -GET /v3.0/jobs/{jobId} +PUT /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| jobId | URL | UUID | O | | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "jobId": "jobId-example", - "jobStatus": "DELETED", - "resourceRelations": [ - { - "resourceId": "resourceId-example" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 파라미터 그룹 +## 모니터링 -### 파라미터 그룹 목록 보기 +### 통계 정보 조회 ```http -GET /v3.0/parameter-groups +GET /v3.0/metric-statistics ``` #### 요청 @@ -4116,73 +4172,27 @@ GET /v3.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "parameterGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 생성하기 +### Metric 목록 보기 ```http -POST /v3.0/parameter-groups +GET /v3.0/metrics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -| dbVersion | Body | Enum | O | DB 엔진 유형 | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example", - "dbVersion": "ENUM_VALUE" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -4194,7 +4204,11 @@ POST /v3.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "metrics": [ + { + "unit": "unit-example" + } + ] } ``` @@ -4203,61 +4217,38 @@ POST /v3.0/parameter-groups --- -### 파라미터 그룹 삭제하기 - -```http -DELETE /v3.0/parameter-groups/{parameterGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +## 이벤트 -#### 응답 +### 이벤트 카테고리 -이 API는 응답 본문을 반환하지 않습니다. +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. ---- +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -### 파라미터 그룹 상세 보기 +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/event-codes ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | -| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |

예시

@@ -4269,18 +4260,11 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", - "parameterGroupName": "parameterGroupName-example", - "description": "description-example", - "dbVersion": "ENUM_VALUE", - "parameterGroupStatus": "STABLE", - "parameters": [ + "eventCodes": [ { - "applyType": "BOTH" + "eventCategoryType": "ALL" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4289,71 +4273,85 @@ GET /v3.0/parameter-groups/{parameterGroupId} --- -### 파라미터 그룹 수정하기 +### 이벤트 목록 조회 ```http -PUT /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/events ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

```json { - "parameterGroupName": "parameterGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "events": [ + { + "eventYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### 파라미터 그룹 복사하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v3.0/parameter-groups/{parameterGroupId}/copy +GET /v3.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -4365,7 +4363,12 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -4374,31 +4377,44 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy --- -### 파라미터 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/parameters +POST /v3.0/event-subscriptions ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "value": "value-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ``` @@ -4407,51 +4423,9 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. - ---- - -### 파라미터 그룹 재설정하기 - -```http -PUT /v3.0/parameter-groups/{parameterGroupId}/reset -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- - -## 프로젝트 정보 - -### 프로젝트 멤버 목록 보기 - -```http -GET /v3.0/project/members -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -4463,11 +4437,7 @@ GET /v3.0/project/members "resultMessage": "SUCCESS", "isSuccessful": true }, - "members": [ - { - "phoneNumber": "phoneNumber-example" - } - ] + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -4476,44 +4446,74 @@ GET /v3.0/project/members --- -### 리전 목록 보기 +### 이벤트 구독 삭제하기 ```http -GET /v3.0/project/regions +DELETE /v3.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v3.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "regions": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "isEnabled": false + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- diff --git a/ko/api-guide-v3.0-ngovc.md b/ko/api-guide-v3.0-ngovc.md index e1f93620..7136f9cf 100644 --- a/ko/api-guide-v3.0-ngovc.md +++ b/ko/api-guide-v3.0-ngovc.md @@ -4,13 +4,16 @@ ### 인증 및 권한 -RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. -발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. +RDS for MySQL 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](/nhncloud/ko/public-api/user-access-key)를 참고하세요. +생성된 Key는 Appkey와 함께 요청 Header에 포함해야 합니다. | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| | X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +| X-TC-AUTHENTICATION-ID | Header | String | O | API 보안 설정 메뉴의 User Access Key ID | +| X-TC-AUTHENTICATION-SECRET | Header | String | O | API 보안 설정 메뉴의 Secret Access Key | 또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. @@ -47,7 +50,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | - ### API 엔드포인트 | 리전 | 엔드포인트 | @@ -87,21 +89,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 프로젝트 정보 -### DB 보안 그룹 목록 보기 +### 프로젝트 멤버 목록 보기 ```http -GET /v3.0/db-security-groups +GET /v3.0/project/members ``` #### 요청 @@ -112,13 +105,11 @@ GET /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -130,9 +121,9 @@ GET /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "members": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -143,51 +134,23 @@ GET /v3.0/db-security-groups --- -### DB 보안 그룹 생성하기 +### 리전 목록 보기 ```http -POST /v3.0/db-security-groups +GET /v3.0/project/regions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| rules.cidr | Body | String | O | CIDR | -| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | - -

예시 -

- -```json -{ - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example", - "rules": [ - { - "description": "description-example" - } - ] -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |
예시

@@ -199,7 +162,11 @@ POST /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "regions": [ + { + "isEnabled": false + } + ] } ``` @@ -208,63 +175,27 @@ POST /v3.0/db-security-groups --- -### DB 보안 그룹 삭제하기 - -```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- +## DB 인스턴스 사양 -### DB 보안 그룹 상세 보기 +### DB 인스턴스 사양 목록 보기 ```http -GET /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/db-flavors ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroup | Body | Object | DB 보안 그룹 | -| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | -| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | -| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | -| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | -| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | -| dbSecurityGroup.rules.cidr | Body | String | CIDR | -| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | -| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 | +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |

예시

@@ -276,19 +207,11 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "dbSecurityGroupId-example", - "dbSecurityGroupName": "dbSecurityGroupName-example", - "description": "description-example", - "progressStatus": "NONE", - "rules": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ``` @@ -297,59 +220,72 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 수정하기 +## 네트워크 + +### 서브넷 목록 보기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/network/subnets ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### DB 보안 그룹 규칙 삭제하기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v3.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleIds | Query | String | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |
예시

@@ -361,7 +297,11 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "dbVersions": [ + { + "restorableFromObs": false + } + ] } ``` @@ -370,51 +310,23 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 생성하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v3.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| storageTypes | Body | Array | 스토리지 타입 목록 |
예시

@@ -426,7 +338,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "storageTypes": [] } ``` @@ -435,52 +347,85 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 수정하기 +### 스토리지 목록 보기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +GET /v3.0/storages ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storages | Body | Array | 스토리지 목록 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "cidr-example", - "description": "description-example" + "storages": [] } ```

+--- + +## 작업 정보 + +### 작업 상태 + +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 + +```http +GET /v3.0/jobs/{jobId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -492,7 +437,15 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ + { + "resourceId": "resourceId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -501,12 +454,12 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} --- -## DB 엔진 +## DB 인스턴스 그룹 -### DB 엔진 목록 보기 +### DB 인스턴스 그룹 목록 보기 ```http -GET /v3.0/db-versions +GET /v3.0/db-instance-groups ``` #### 요청 @@ -517,10 +470,11 @@ GET /v3.0/db-versions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -532,9 +486,9 @@ GET /v3.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ + "dbInstanceGroups": [ { - "restorableFromObs": false + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -545,6 +499,60 @@ GET /v3.0/db-versions --- +### DB 인스턴스 그룹 상세 보기 + +```http +GET /v3.0/db-instance-groups/{dbInstanceGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ +--- + ## DB 인스턴스 ### DB 인스턴스 상태 @@ -2698,12 +2706,22 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info --- -## DB 인스턴스 그룹 +## 백업 -### DB 인스턴스 그룹 목록 보기 +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | + +### 백업 목록 조회 ```http -GET /v3.0/db-instance-groups +GET /v3.0/backups ``` #### 요청 @@ -2714,11 +2732,18 @@ GET /v3.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2730,7 +2755,8 @@ GET /v3.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ + "totalCounts": 1, + "backups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -2743,10 +2769,10 @@ GET /v3.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +### 백업 삭제하기 ```http -GET /v3.0/db-instance-groups/{dbInstanceGroupId} +DELETE /v3.0/backups/{backupId} ``` #### 요청 @@ -2755,20 +2781,13 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbInstanceGroupId | URL | UUID | O | | +| backupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2780,15 +2799,7 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", - "replicationType": "STANDALONE", - "dbInstances": [ - { - "dbInstanceStatus": "BEFORE_CREATE" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "jobId": "jobId-example" } ``` @@ -2797,27 +2808,44 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} --- -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 +### 백업 내보내기 ```http -GET /v3.0/db-flavors +POST /v3.0/backups/{backupId}/export ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | + +

예시 +

+ +```json +{ + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -2829,11 +2857,7 @@ GET /v3.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "vcpus": 1 - } - ] + "jobId": "jobId-example" } ``` @@ -2842,23 +2866,93 @@ GET /v3.0/db-flavors --- -## storages - -### 스토리지 목록 보기 +### 백업 복원하기 ```http -GET /v3.0/storages +POST /v3.0/backups/{backupId}/restore ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storages | Body | Array | 스토리지 목록 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -2870,7 +2964,7 @@ GET /v3.0/storages "resultMessage": "SUCCESS", "isSuccessful": true }, - "storages": [] + "jobId": "jobId-example" } ``` @@ -2879,12 +2973,21 @@ GET /v3.0/storages --- -## 네트워크 +## DB 보안 그룹 -### 서브넷 목록 보기 +### DB 보안 그룹 진행 상태 + +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | + +### DB 보안 그룹 목록 보기 ```http -GET /v3.0/network/subnets +GET /v3.0/db-security-groups ``` #### 요청 @@ -2895,12 +2998,13 @@ GET /v3.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -2912,9 +3016,9 @@ GET /v3.0/network/subnets "resultMessage": "SUCCESS", "isSuccessful": true }, - "subnets": [ + "dbSecurityGroups": [ { - "availableIpCount": 1 + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2925,23 +3029,51 @@ GET /v3.0/network/subnets --- -## 데이터 스토리지 - -### 스토리지 타입 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v3.0/storage-types +POST /v3.0/db-security-groups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ + { + "description": "description-example" + } + ] +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storageTypes | Body | Array | 스토리지 타입 목록 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -2953,7 +3085,7 @@ GET /v3.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -2962,41 +3094,63 @@ GET /v3.0/storage-types --- -## 모니터링 - -### 통계 정보 조회 +### DB 보안 그룹 삭제하기 ```http -GET /v3.0/metric-statistics +DELETE /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 이 API는 응답 본문을 반환하지 않습니다. --- -### Metric 목록 보기 +### DB 보안 그룹 상세 보기 ```http -GET /v3.0/metrics +GET /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | String | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| dbSecurityGroup | Body | Object | DB 보안 그룹 | +| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | +| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | +| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | +| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | +| dbSecurityGroup.rules.cidr | Body | String | CIDR | +| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | +| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3008,11 +3162,19 @@ GET /v3.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "unit": "unit-example" - } - ] + "dbSecurityGroup": { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -3021,73 +3183,43 @@ GET /v3.0/metrics --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | - -### 백업 목록 조회 +### DB 보안 그룹 수정하기 ```http -GET /v3.0/backups +PUT /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| backups.createdYmdt | Body | DateTime | 생성 일시 | -| backups.updatedYmdt | Body | DateTime | 수정 일시 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "backups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 백업 삭제하기 +### DB 보안 그룹 규칙 삭제하기 ```http -DELETE /v3.0/backups/{backupId} +DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 @@ -3096,7 +3228,8 @@ DELETE /v3.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | #### 응답 @@ -3123,33 +3256,40 @@ DELETE /v3.0/backups/{backupId} --- -### 백업 내보내기 +### DB 보안 그룹 규칙 생성하기 ```http -POST /v3.0/backups/{backupId}/export +POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | -| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |
예시

```json { - "tenantId": "tenantId-example", - "username": "username-example", - "password": "password-example", - "targetContainer": "targetContainer-example", - "objectPath": "objectPath-example" + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3181,82 +3321,41 @@ POST /v3.0/backups/{backupId}/export --- -### 백업 복원하기 +### DB 보안 그룹 규칙 수정하기 ```http -POST /v3.0/backups/{backupId}/restore +PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | -| storage | Body | Object | O | 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 스토리지 타입 | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "dbInstanceName": "dbInstanceName", - "description": "description-example", - "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbPort": 1, - "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbSecurityGroupIds": [], - "userGroupIds": [], - "useHighAvailability": false, - "pingInterval": 3, - "useDefaultNotification": false, - "useDeletionProtection": false, - "network": { - "subnetId": "550e8400-e29b-41d4-a716-446655440000", - "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" - }, - "storage": { - "storageType": "ENUM_VALUE", - "storageSize": 20 + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 }, - "backup": { - "backupPeriod": 0, - "backupRetryCount": 0, - "ftwrlWaitTimeout": 1800, - "replicationRegion": "KR4", - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3288,12 +3387,12 @@ POST /v3.0/backups/{backupId}/restore --- -## 사용자 그룹 +## 파라미터 그룹 -### 사용자 그룹 목록 보기 +### 파라미터 그룹 목록 보기 ```http -GET /v3.0/user-groups +GET /v3.0/parameter-groups ``` #### 요청 @@ -3304,11 +3403,14 @@ GET /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시 | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3320,7 +3422,7 @@ GET /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "parameterGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3333,28 +3435,28 @@ GET /v3.0/user-groups --- -### 사용자 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v3.0/user-groups +POST /v3.0/parameter-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAllYN": false + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -3365,7 +3467,7 @@ POST /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -3377,7 +3479,7 @@ POST /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3386,10 +3488,10 @@ POST /v3.0/user-groups --- -### 사용자 그룹 삭제하기 +### 파라미터 그룹 삭제하기 ```http -DELETE /v3.0/user-groups/{userGroupId} +DELETE /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -3398,7 +3500,7 @@ DELETE /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -3406,10 +3508,10 @@ DELETE /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 상세 보기 +### 파라미터 그룹 상세 보기 ```http -GET /v3.0/user-groups/{userGroupId} +GET /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -3418,17 +3520,27 @@ GET /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -3442,12 +3554,14 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", - "userGroupName": "userGroupName-example", - "userGroupTypeCode": "ENTIRE", - "members": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "memberId": "memberId-example" + "applyType": "BOTH" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -3460,30 +3574,28 @@ GET /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 수정하기 +### 파라미터 그룹 수정하기 ```http -PUT /v3.0/user-groups/{userGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAllYN": false -} + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} ```

@@ -3495,30 +3607,38 @@ PUT /v3.0/user-groups/{userGroupId} --- -## 알림 그룹 - -### 알림 그룹 목록 보기 +### 파라미터 그룹 복사하기 ```http -GET /v3.0/notification-groups +POST /v3.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -3530,11 +3650,7 @@ GET /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3543,34 +3659,31 @@ GET /v3.0/notification-groups --- -### 알림 그룹 생성하기 +### 파라미터 수정하기 ```http -POST /v3.0/notification-groups +PUT /v3.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "notificationGroupName": "notificationGroupName", - "notifyEmail": true, - "notifySms": true, - "isEnabled": true, - "dbInstanceIds": [], - "userGroupIds": [] + "modifiedParameters": [ + { + "value": "value-example" + } + ] } ``` @@ -3579,33 +3692,14 @@ POST /v3.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | - -

예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "notificationGroupId": "notificationGroupId-example" -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 재설정하기 ```http -DELETE /v3.0/notification-groups/{notificationGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId}/reset ``` #### 요청 @@ -3614,7 +3708,7 @@ DELETE /v3.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -3622,37 +3716,27 @@ DELETE /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 상세 보기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -GET /v3.0/notification-groups/{notificationGroupId} +GET /v3.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | | userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3664,23 +3748,11 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstances": [ - { - "dbInstanceName": "dbInstanceName-example" - } - ], "userGroups": [ { - "userGroupName": "userGroupName-example" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -3689,35 +3761,28 @@ GET /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v3.0/notification-groups/{notificationGroupId} +POST /v3.0/user-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstanceIds": [], - "userGroupIds": [] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -3726,42 +3791,9 @@ PUT /v3.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. - ---- - -## 이벤트 - -### 이벤트 카테고리 - -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. - -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | - -### 구독 가능한 이벤트 코드 목록 보기 - -```http -GET /v3.0/event-codes -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

@@ -3773,11 +3805,7 @@ GET /v3.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ - { - "eventCategoryType": "ALL" - } - ] + "userGroupId": "userGroupId-example" } ``` @@ -3786,30 +3814,51 @@ GET /v3.0/event-codes --- -### 이벤트 목록 조회 +### 사용자 그룹 삭제하기 ```http -GET /v3.0/events +DELETE /v3.0/user-groups/{userGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 + +```http +GET /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메세지 목록 | -| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | -| events.messages.message | Body | String | 이벤트 메세지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 | +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3821,12 +3870,16 @@ GET /v3.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "events": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "eventYmdt": "2023-12-31T15:00:00+09:00" + "memberId": "memberId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3835,12 +3888,47 @@ GET /v3.0/events --- -## 이벤트 구독 +### 사용자 그룹 수정하기 -### 이벤트 구독 목록 조회 +```http +PUT /v3.0/user-groups/{userGroupId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | + +

예시 +

+ +```json +{ + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 알림 그룹 + +### 알림 그룹 목록 보기 ```http -GET /v3.0/event-subscriptions +GET /v3.0/notification-groups ``` #### 요청 @@ -3851,20 +3939,14 @@ GET /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3876,10 +3958,9 @@ GET /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "eventSubscriptions": [ + "notificationGroups": [ { - "createdYmdt": "2023-12-31T15:00:00+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -3890,43 +3971,33 @@ GET /v3.0/event-subscriptions --- -### 이벤트 구독 생성하기 +### 알림 그룹 생성하기 ```http -POST /v3.0/event-subscriptions +POST /v3.0/notification-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |

예시

```json { - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], "userGroupIds": [] } ``` @@ -3938,7 +4009,7 @@ POST /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3950,7 +4021,7 @@ POST /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3959,10 +4030,10 @@ POST /v3.0/event-subscriptions --- -### 이벤트 구독 삭제하기 +### 알림 그룹 삭제하기 ```http -DELETE /v3.0/event-subscriptions/{eventSubscriptionId} +DELETE /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -3971,7 +4042,7 @@ DELETE /v3.0/event-subscriptions/{eventSubscriptionId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | +| notificationGroupId | URL | UUID | O | | #### 응답 @@ -3979,135 +4050,120 @@ DELETE /v3.0/event-subscriptions/{eventSubscriptionId} --- -### 이벤트 구독 수정하기 +### 알림 그룹 상세 보기 ```http -PUT /v3.0/event-subscriptions/{eventSubscriptionId} +GET /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 +이 API는 요청 본문을 요구하지 않습니다. + | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| notificationGroupId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, - "eventCodes": [], - "sources": [ + "isEnabled": false, + "dbInstances": [ { - "eventCategoryType": "ALL" + "dbInstanceName": "dbInstanceName-example" } ], - "userGroupIds": [] + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### 알림 그룹 수정하기 ```http -GET /v3.0/jobs/{jobId} +PUT /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| jobId | URL | UUID | O | | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "jobId": "jobId-example", - "jobStatus": "DELETED", - "resourceRelations": [ - { - "resourceId": "resourceId-example" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 파라미터 그룹 +## 모니터링 -### 파라미터 그룹 목록 보기 +### 통계 정보 조회 ```http -GET /v3.0/parameter-groups +GET /v3.0/metric-statistics ``` #### 요청 @@ -4116,73 +4172,27 @@ GET /v3.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "parameterGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 생성하기 +### Metric 목록 보기 ```http -POST /v3.0/parameter-groups +GET /v3.0/metrics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -| dbVersion | Body | Enum | O | DB 엔진 유형 | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example", - "dbVersion": "ENUM_VALUE" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -4194,7 +4204,11 @@ POST /v3.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "metrics": [ + { + "unit": "unit-example" + } + ] } ``` @@ -4203,61 +4217,38 @@ POST /v3.0/parameter-groups --- -### 파라미터 그룹 삭제하기 - -```http -DELETE /v3.0/parameter-groups/{parameterGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +## 이벤트 -#### 응답 +### 이벤트 카테고리 -이 API는 응답 본문을 반환하지 않습니다. +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. ---- +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -### 파라미터 그룹 상세 보기 +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/event-codes ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | -| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |

예시

@@ -4269,18 +4260,11 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", - "parameterGroupName": "parameterGroupName-example", - "description": "description-example", - "dbVersion": "ENUM_VALUE", - "parameterGroupStatus": "STABLE", - "parameters": [ + "eventCodes": [ { - "applyType": "BOTH" + "eventCategoryType": "ALL" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4289,71 +4273,85 @@ GET /v3.0/parameter-groups/{parameterGroupId} --- -### 파라미터 그룹 수정하기 +### 이벤트 목록 조회 ```http -PUT /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/events ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

```json { - "parameterGroupName": "parameterGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "events": [ + { + "eventYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### 파라미터 그룹 복사하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v3.0/parameter-groups/{parameterGroupId}/copy +GET /v3.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -4365,7 +4363,12 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -4374,31 +4377,44 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy --- -### 파라미터 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/parameters +POST /v3.0/event-subscriptions ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "value": "value-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ``` @@ -4407,51 +4423,9 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. - ---- - -### 파라미터 그룹 재설정하기 - -```http -PUT /v3.0/parameter-groups/{parameterGroupId}/reset -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- - -## 프로젝트 정보 - -### 프로젝트 멤버 목록 보기 - -```http -GET /v3.0/project/members -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -4463,11 +4437,7 @@ GET /v3.0/project/members "resultMessage": "SUCCESS", "isSuccessful": true }, - "members": [ - { - "phoneNumber": "phoneNumber-example" - } - ] + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -4476,44 +4446,74 @@ GET /v3.0/project/members --- -### 리전 목록 보기 +### 이벤트 구독 삭제하기 ```http -GET /v3.0/project/regions +DELETE /v3.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v3.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "regions": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "isEnabled": false + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- diff --git a/ko/api-guide-v3.0-ngsc.md b/ko/api-guide-v3.0-ngsc.md index 76a9a8b6..86f13578 100644 --- a/ko/api-guide-v3.0-ngsc.md +++ b/ko/api-guide-v3.0-ngsc.md @@ -4,13 +4,16 @@ ### 인증 및 권한 -RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. -발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. +RDS for MySQL 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](/nhncloud/ko/public-api/user-access-key)를 참고하세요. +생성된 Key는 Appkey와 함께 요청 Header에 포함해야 합니다. | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| | X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +| X-TC-AUTHENTICATION-ID | Header | String | O | API 보안 설정 메뉴의 User Access Key ID | +| X-TC-AUTHENTICATION-SECRET | Header | String | O | API 보안 설정 메뉴의 Secret Access Key | 또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. @@ -47,7 +50,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | - ### API 엔드포인트 | 리전 | 엔드포인트 | @@ -87,21 +89,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 프로젝트 정보 -### DB 보안 그룹 목록 보기 +### 프로젝트 멤버 목록 보기 ```http -GET /v3.0/db-security-groups +GET /v3.0/project/members ``` #### 요청 @@ -112,13 +105,11 @@ GET /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -130,9 +121,9 @@ GET /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "members": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -143,51 +134,23 @@ GET /v3.0/db-security-groups --- -### DB 보안 그룹 생성하기 +### 리전 목록 보기 ```http -POST /v3.0/db-security-groups +GET /v3.0/project/regions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| rules.cidr | Body | String | O | CIDR | -| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | - -

예시 -

- -```json -{ - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example", - "rules": [ - { - "description": "description-example" - } - ] -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |
예시

@@ -199,7 +162,11 @@ POST /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "regions": [ + { + "isEnabled": false + } + ] } ``` @@ -208,63 +175,27 @@ POST /v3.0/db-security-groups --- -### DB 보안 그룹 삭제하기 - -```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- +## DB 인스턴스 사양 -### DB 보안 그룹 상세 보기 +### DB 인스턴스 사양 목록 보기 ```http -GET /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/db-flavors ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroup | Body | Object | DB 보안 그룹 | -| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | -| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | -| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | -| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | -| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | -| dbSecurityGroup.rules.cidr | Body | String | CIDR | -| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | -| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 | +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |

예시

@@ -276,19 +207,11 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "dbSecurityGroupId-example", - "dbSecurityGroupName": "dbSecurityGroupName-example", - "description": "description-example", - "progressStatus": "NONE", - "rules": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ``` @@ -297,59 +220,72 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 수정하기 +## 네트워크 + +### 서브넷 목록 보기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/network/subnets ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### DB 보안 그룹 규칙 삭제하기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v3.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleIds | Query | String | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |
예시

@@ -361,7 +297,11 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "dbVersions": [ + { + "restorableFromObs": false + } + ] } ``` @@ -370,51 +310,23 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 생성하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v3.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| storageTypes | Body | Array | 스토리지 타입 목록 |
예시

@@ -426,7 +338,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "storageTypes": [] } ``` @@ -435,52 +347,85 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 수정하기 +### 스토리지 목록 보기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +GET /v3.0/storages ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storages | Body | Array | 스토리지 목록 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "cidr-example", - "description": "description-example" + "storages": [] } ```

+--- + +## 작업 정보 + +### 작업 상태 + +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 + +```http +GET /v3.0/jobs/{jobId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -492,7 +437,15 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ + { + "resourceId": "resourceId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -501,12 +454,12 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} --- -## DB 엔진 +## DB 인스턴스 그룹 -### DB 엔진 목록 보기 +### DB 인스턴스 그룹 목록 보기 ```http -GET /v3.0/db-versions +GET /v3.0/db-instance-groups ``` #### 요청 @@ -517,10 +470,11 @@ GET /v3.0/db-versions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -532,9 +486,9 @@ GET /v3.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ + "dbInstanceGroups": [ { - "restorableFromObs": false + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -545,6 +499,60 @@ GET /v3.0/db-versions --- +### DB 인스턴스 그룹 상세 보기 + +```http +GET /v3.0/db-instance-groups/{dbInstanceGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ +--- + ## DB 인스턴스 ### DB 인스턴스 상태 @@ -2698,12 +2706,22 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info --- -## DB 인스턴스 그룹 +## 백업 -### DB 인스턴스 그룹 목록 보기 +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | + +### 백업 목록 조회 ```http -GET /v3.0/db-instance-groups +GET /v3.0/backups ``` #### 요청 @@ -2714,11 +2732,18 @@ GET /v3.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2730,7 +2755,8 @@ GET /v3.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ + "totalCounts": 1, + "backups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -2743,10 +2769,10 @@ GET /v3.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +### 백업 삭제하기 ```http -GET /v3.0/db-instance-groups/{dbInstanceGroupId} +DELETE /v3.0/backups/{backupId} ``` #### 요청 @@ -2755,20 +2781,13 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbInstanceGroupId | URL | UUID | O | | +| backupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2780,15 +2799,7 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", - "replicationType": "STANDALONE", - "dbInstances": [ - { - "dbInstanceStatus": "BEFORE_CREATE" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "jobId": "jobId-example" } ``` @@ -2797,27 +2808,44 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} --- -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 +### 백업 내보내기 ```http -GET /v3.0/db-flavors +POST /v3.0/backups/{backupId}/export ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | + +

예시 +

+ +```json +{ + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -2829,11 +2857,7 @@ GET /v3.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "vcpus": 1 - } - ] + "jobId": "jobId-example" } ``` @@ -2842,23 +2866,93 @@ GET /v3.0/db-flavors --- -## storages - -### 스토리지 목록 보기 +### 백업 복원하기 ```http -GET /v3.0/storages +POST /v3.0/backups/{backupId}/restore ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storages | Body | Array | 스토리지 목록 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -2870,7 +2964,7 @@ GET /v3.0/storages "resultMessage": "SUCCESS", "isSuccessful": true }, - "storages": [] + "jobId": "jobId-example" } ``` @@ -2879,12 +2973,21 @@ GET /v3.0/storages --- -## 네트워크 +## DB 보안 그룹 -### 서브넷 목록 보기 +### DB 보안 그룹 진행 상태 + +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | + +### DB 보안 그룹 목록 보기 ```http -GET /v3.0/network/subnets +GET /v3.0/db-security-groups ``` #### 요청 @@ -2895,12 +2998,13 @@ GET /v3.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -2912,9 +3016,9 @@ GET /v3.0/network/subnets "resultMessage": "SUCCESS", "isSuccessful": true }, - "subnets": [ + "dbSecurityGroups": [ { - "availableIpCount": 1 + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2925,23 +3029,51 @@ GET /v3.0/network/subnets --- -## 데이터 스토리지 - -### 스토리지 타입 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v3.0/storage-types +POST /v3.0/db-security-groups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ + { + "description": "description-example" + } + ] +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storageTypes | Body | Array | 스토리지 타입 목록 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -2953,7 +3085,7 @@ GET /v3.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -2962,41 +3094,63 @@ GET /v3.0/storage-types --- -## 모니터링 - -### 통계 정보 조회 +### DB 보안 그룹 삭제하기 ```http -GET /v3.0/metric-statistics +DELETE /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 이 API는 응답 본문을 반환하지 않습니다. --- -### Metric 목록 보기 +### DB 보안 그룹 상세 보기 ```http -GET /v3.0/metrics +GET /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | String | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| dbSecurityGroup | Body | Object | DB 보안 그룹 | +| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | +| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | +| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | +| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | +| dbSecurityGroup.rules.cidr | Body | String | CIDR | +| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | +| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3008,11 +3162,19 @@ GET /v3.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "unit": "unit-example" - } - ] + "dbSecurityGroup": { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -3021,73 +3183,43 @@ GET /v3.0/metrics --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | - -### 백업 목록 조회 +### DB 보안 그룹 수정하기 ```http -GET /v3.0/backups +PUT /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| backups.createdYmdt | Body | DateTime | 생성 일시 | -| backups.updatedYmdt | Body | DateTime | 수정 일시 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "backups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 백업 삭제하기 +### DB 보안 그룹 규칙 삭제하기 ```http -DELETE /v3.0/backups/{backupId} +DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 @@ -3096,7 +3228,8 @@ DELETE /v3.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | #### 응답 @@ -3123,33 +3256,40 @@ DELETE /v3.0/backups/{backupId} --- -### 백업 내보내기 +### DB 보안 그룹 규칙 생성하기 ```http -POST /v3.0/backups/{backupId}/export +POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | -| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |
예시

```json { - "tenantId": "tenantId-example", - "username": "username-example", - "password": "password-example", - "targetContainer": "targetContainer-example", - "objectPath": "objectPath-example" + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3181,82 +3321,41 @@ POST /v3.0/backups/{backupId}/export --- -### 백업 복원하기 +### DB 보안 그룹 규칙 수정하기 ```http -POST /v3.0/backups/{backupId}/restore +PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | -| storage | Body | Object | O | 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 스토리지 타입 | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "dbInstanceName": "dbInstanceName", - "description": "description-example", - "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbPort": 1, - "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbSecurityGroupIds": [], - "userGroupIds": [], - "useHighAvailability": false, - "pingInterval": 3, - "useDefaultNotification": false, - "useDeletionProtection": false, - "network": { - "subnetId": "550e8400-e29b-41d4-a716-446655440000", - "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" - }, - "storage": { - "storageType": "ENUM_VALUE", - "storageSize": 20 + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 }, - "backup": { - "backupPeriod": 0, - "backupRetryCount": 0, - "ftwrlWaitTimeout": 1800, - "replicationRegion": "KR4", - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3288,12 +3387,12 @@ POST /v3.0/backups/{backupId}/restore --- -## 사용자 그룹 +## 파라미터 그룹 -### 사용자 그룹 목록 보기 +### 파라미터 그룹 목록 보기 ```http -GET /v3.0/user-groups +GET /v3.0/parameter-groups ``` #### 요청 @@ -3304,11 +3403,14 @@ GET /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시 | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3320,7 +3422,7 @@ GET /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "parameterGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3333,28 +3435,28 @@ GET /v3.0/user-groups --- -### 사용자 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v3.0/user-groups +POST /v3.0/parameter-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAllYN": false + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -3365,7 +3467,7 @@ POST /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -3377,7 +3479,7 @@ POST /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3386,10 +3488,10 @@ POST /v3.0/user-groups --- -### 사용자 그룹 삭제하기 +### 파라미터 그룹 삭제하기 ```http -DELETE /v3.0/user-groups/{userGroupId} +DELETE /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -3398,7 +3500,7 @@ DELETE /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -3406,10 +3508,10 @@ DELETE /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 상세 보기 +### 파라미터 그룹 상세 보기 ```http -GET /v3.0/user-groups/{userGroupId} +GET /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -3418,17 +3520,27 @@ GET /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -3442,12 +3554,14 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", - "userGroupName": "userGroupName-example", - "userGroupTypeCode": "ENTIRE", - "members": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "memberId": "memberId-example" + "applyType": "BOTH" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -3460,30 +3574,28 @@ GET /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 수정하기 +### 파라미터 그룹 수정하기 ```http -PUT /v3.0/user-groups/{userGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAllYN": false -} + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} ```

@@ -3495,30 +3607,38 @@ PUT /v3.0/user-groups/{userGroupId} --- -## 알림 그룹 - -### 알림 그룹 목록 보기 +### 파라미터 그룹 복사하기 ```http -GET /v3.0/notification-groups +POST /v3.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -3530,11 +3650,7 @@ GET /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3543,34 +3659,31 @@ GET /v3.0/notification-groups --- -### 알림 그룹 생성하기 +### 파라미터 수정하기 ```http -POST /v3.0/notification-groups +PUT /v3.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "notificationGroupName": "notificationGroupName", - "notifyEmail": true, - "notifySms": true, - "isEnabled": true, - "dbInstanceIds": [], - "userGroupIds": [] + "modifiedParameters": [ + { + "value": "value-example" + } + ] } ``` @@ -3579,33 +3692,14 @@ POST /v3.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | - -

예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "notificationGroupId": "notificationGroupId-example" -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 재설정하기 ```http -DELETE /v3.0/notification-groups/{notificationGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId}/reset ``` #### 요청 @@ -3614,7 +3708,7 @@ DELETE /v3.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -3622,37 +3716,27 @@ DELETE /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 상세 보기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -GET /v3.0/notification-groups/{notificationGroupId} +GET /v3.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | | userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3664,23 +3748,11 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstances": [ - { - "dbInstanceName": "dbInstanceName-example" - } - ], "userGroups": [ { - "userGroupName": "userGroupName-example" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -3689,35 +3761,28 @@ GET /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v3.0/notification-groups/{notificationGroupId} +POST /v3.0/user-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstanceIds": [], - "userGroupIds": [] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -3726,42 +3791,9 @@ PUT /v3.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. - ---- - -## 이벤트 - -### 이벤트 카테고리 - -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. - -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | - -### 구독 가능한 이벤트 코드 목록 보기 - -```http -GET /v3.0/event-codes -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

@@ -3773,11 +3805,7 @@ GET /v3.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ - { - "eventCategoryType": "ALL" - } - ] + "userGroupId": "userGroupId-example" } ``` @@ -3786,30 +3814,51 @@ GET /v3.0/event-codes --- -### 이벤트 목록 조회 +### 사용자 그룹 삭제하기 ```http -GET /v3.0/events +DELETE /v3.0/user-groups/{userGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 + +```http +GET /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메세지 목록 | -| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | -| events.messages.message | Body | String | 이벤트 메세지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 | +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3821,12 +3870,16 @@ GET /v3.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "events": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "eventYmdt": "2023-12-31T15:00:00+09:00" + "memberId": "memberId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3835,12 +3888,47 @@ GET /v3.0/events --- -## 이벤트 구독 +### 사용자 그룹 수정하기 -### 이벤트 구독 목록 조회 +```http +PUT /v3.0/user-groups/{userGroupId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | + +

예시 +

+ +```json +{ + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 알림 그룹 + +### 알림 그룹 목록 보기 ```http -GET /v3.0/event-subscriptions +GET /v3.0/notification-groups ``` #### 요청 @@ -3851,20 +3939,14 @@ GET /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3876,10 +3958,9 @@ GET /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "eventSubscriptions": [ + "notificationGroups": [ { - "createdYmdt": "2023-12-31T15:00:00+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -3890,43 +3971,33 @@ GET /v3.0/event-subscriptions --- -### 이벤트 구독 생성하기 +### 알림 그룹 생성하기 ```http -POST /v3.0/event-subscriptions +POST /v3.0/notification-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |

예시

```json { - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], "userGroupIds": [] } ``` @@ -3938,7 +4009,7 @@ POST /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3950,7 +4021,7 @@ POST /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3959,10 +4030,10 @@ POST /v3.0/event-subscriptions --- -### 이벤트 구독 삭제하기 +### 알림 그룹 삭제하기 ```http -DELETE /v3.0/event-subscriptions/{eventSubscriptionId} +DELETE /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -3971,7 +4042,7 @@ DELETE /v3.0/event-subscriptions/{eventSubscriptionId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | +| notificationGroupId | URL | UUID | O | | #### 응답 @@ -3979,135 +4050,120 @@ DELETE /v3.0/event-subscriptions/{eventSubscriptionId} --- -### 이벤트 구독 수정하기 +### 알림 그룹 상세 보기 ```http -PUT /v3.0/event-subscriptions/{eventSubscriptionId} +GET /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 +이 API는 요청 본문을 요구하지 않습니다. + | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| notificationGroupId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, - "eventCodes": [], - "sources": [ + "isEnabled": false, + "dbInstances": [ { - "eventCategoryType": "ALL" + "dbInstanceName": "dbInstanceName-example" } ], - "userGroupIds": [] + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### 알림 그룹 수정하기 ```http -GET /v3.0/jobs/{jobId} +PUT /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| jobId | URL | UUID | O | | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "jobId": "jobId-example", - "jobStatus": "DELETED", - "resourceRelations": [ - { - "resourceId": "resourceId-example" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 파라미터 그룹 +## 모니터링 -### 파라미터 그룹 목록 보기 +### 통계 정보 조회 ```http -GET /v3.0/parameter-groups +GET /v3.0/metric-statistics ``` #### 요청 @@ -4116,73 +4172,27 @@ GET /v3.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "parameterGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 생성하기 +### Metric 목록 보기 ```http -POST /v3.0/parameter-groups +GET /v3.0/metrics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -| dbVersion | Body | Enum | O | DB 엔진 유형 | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example", - "dbVersion": "ENUM_VALUE" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -4194,7 +4204,11 @@ POST /v3.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "metrics": [ + { + "unit": "unit-example" + } + ] } ``` @@ -4203,61 +4217,38 @@ POST /v3.0/parameter-groups --- -### 파라미터 그룹 삭제하기 - -```http -DELETE /v3.0/parameter-groups/{parameterGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +## 이벤트 -#### 응답 +### 이벤트 카테고리 -이 API는 응답 본문을 반환하지 않습니다. +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. ---- +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -### 파라미터 그룹 상세 보기 +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/event-codes ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | -| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |

예시

@@ -4269,18 +4260,11 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", - "parameterGroupName": "parameterGroupName-example", - "description": "description-example", - "dbVersion": "ENUM_VALUE", - "parameterGroupStatus": "STABLE", - "parameters": [ + "eventCodes": [ { - "applyType": "BOTH" + "eventCategoryType": "ALL" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4289,71 +4273,85 @@ GET /v3.0/parameter-groups/{parameterGroupId} --- -### 파라미터 그룹 수정하기 +### 이벤트 목록 조회 ```http -PUT /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/events ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

```json { - "parameterGroupName": "parameterGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "events": [ + { + "eventYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### 파라미터 그룹 복사하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v3.0/parameter-groups/{parameterGroupId}/copy +GET /v3.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -4365,7 +4363,12 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -4374,31 +4377,44 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy --- -### 파라미터 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/parameters +POST /v3.0/event-subscriptions ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "value": "value-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ``` @@ -4407,51 +4423,9 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. - ---- - -### 파라미터 그룹 재설정하기 - -```http -PUT /v3.0/parameter-groups/{parameterGroupId}/reset -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- - -## 프로젝트 정보 - -### 프로젝트 멤버 목록 보기 - -```http -GET /v3.0/project/members -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -4463,11 +4437,7 @@ GET /v3.0/project/members "resultMessage": "SUCCESS", "isSuccessful": true }, - "members": [ - { - "phoneNumber": "phoneNumber-example" - } - ] + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -4476,44 +4446,74 @@ GET /v3.0/project/members --- -### 리전 목록 보기 +### 이벤트 구독 삭제하기 ```http -GET /v3.0/project/regions +DELETE /v3.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v3.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "regions": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "isEnabled": false + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- diff --git a/ko/api-guide-v3.0-ninc.md b/ko/api-guide-v3.0-ninc.md index a13ddb7c..f7f11d1c 100644 --- a/ko/api-guide-v3.0-ninc.md +++ b/ko/api-guide-v3.0-ninc.md @@ -4,13 +4,16 @@ ### 인증 및 권한 -RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. -발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. +RDS for MySQL 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](/nhncloud/ko/public-api/user-access-key)를 참고하세요. +생성된 Key는 Appkey와 함께 요청 Header에 포함해야 합니다. | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| | X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +| X-TC-AUTHENTICATION-ID | Header | String | O | API 보안 설정 메뉴의 User Access Key ID | +| X-TC-AUTHENTICATION-SECRET | Header | String | O | API 보안 설정 메뉴의 Secret Access Key | 또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. @@ -47,7 +50,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | - ### API 엔드포인트 | 리전 | 엔드포인트 | @@ -87,21 +89,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 프로젝트 정보 -### DB 보안 그룹 목록 보기 +### 프로젝트 멤버 목록 보기 ```http -GET /v3.0/db-security-groups +GET /v3.0/project/members ``` #### 요청 @@ -112,13 +105,11 @@ GET /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -130,9 +121,9 @@ GET /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "members": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -143,51 +134,23 @@ GET /v3.0/db-security-groups --- -### DB 보안 그룹 생성하기 +### 리전 목록 보기 ```http -POST /v3.0/db-security-groups +GET /v3.0/project/regions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| rules.cidr | Body | String | O | CIDR | -| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | - -

예시 -

- -```json -{ - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example", - "rules": [ - { - "description": "description-example" - } - ] -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |
예시

@@ -199,7 +162,11 @@ POST /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "regions": [ + { + "isEnabled": false + } + ] } ``` @@ -208,63 +175,27 @@ POST /v3.0/db-security-groups --- -### DB 보안 그룹 삭제하기 - -```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- +## DB 인스턴스 사양 -### DB 보안 그룹 상세 보기 +### DB 인스턴스 사양 목록 보기 ```http -GET /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/db-flavors ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroup | Body | Object | DB 보안 그룹 | -| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | -| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | -| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | -| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | -| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | -| dbSecurityGroup.rules.cidr | Body | String | CIDR | -| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | -| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 | +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |

예시

@@ -276,19 +207,11 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "dbSecurityGroupId-example", - "dbSecurityGroupName": "dbSecurityGroupName-example", - "description": "description-example", - "progressStatus": "NONE", - "rules": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ``` @@ -297,59 +220,72 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 수정하기 +## 네트워크 + +### 서브넷 목록 보기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/network/subnets ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### DB 보안 그룹 규칙 삭제하기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v3.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleIds | Query | String | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |
예시

@@ -361,7 +297,11 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "dbVersions": [ + { + "restorableFromObs": false + } + ] } ``` @@ -370,51 +310,23 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 생성하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v3.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| storageTypes | Body | Array | 스토리지 타입 목록 |
예시

@@ -426,7 +338,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "storageTypes": [] } ``` @@ -435,52 +347,85 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 수정하기 +### 스토리지 목록 보기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +GET /v3.0/storages ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storages | Body | Array | 스토리지 목록 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "cidr-example", - "description": "description-example" + "storages": [] } ```

+--- + +## 작업 정보 + +### 작업 상태 + +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 + +```http +GET /v3.0/jobs/{jobId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -492,7 +437,15 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ + { + "resourceId": "resourceId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -501,12 +454,12 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} --- -## DB 엔진 +## DB 인스턴스 그룹 -### DB 엔진 목록 보기 +### DB 인스턴스 그룹 목록 보기 ```http -GET /v3.0/db-versions +GET /v3.0/db-instance-groups ``` #### 요청 @@ -517,10 +470,11 @@ GET /v3.0/db-versions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -532,9 +486,9 @@ GET /v3.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ + "dbInstanceGroups": [ { - "restorableFromObs": false + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -545,6 +499,60 @@ GET /v3.0/db-versions --- +### DB 인스턴스 그룹 상세 보기 + +```http +GET /v3.0/db-instance-groups/{dbInstanceGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ +--- + ## DB 인스턴스 ### DB 인스턴스 상태 @@ -2698,12 +2706,22 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info --- -## DB 인스턴스 그룹 +## 백업 -### DB 인스턴스 그룹 목록 보기 +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | + +### 백업 목록 조회 ```http -GET /v3.0/db-instance-groups +GET /v3.0/backups ``` #### 요청 @@ -2714,11 +2732,18 @@ GET /v3.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2730,7 +2755,8 @@ GET /v3.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ + "totalCounts": 1, + "backups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -2743,10 +2769,10 @@ GET /v3.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +### 백업 삭제하기 ```http -GET /v3.0/db-instance-groups/{dbInstanceGroupId} +DELETE /v3.0/backups/{backupId} ``` #### 요청 @@ -2755,20 +2781,13 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbInstanceGroupId | URL | UUID | O | | +| backupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2780,15 +2799,7 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", - "replicationType": "STANDALONE", - "dbInstances": [ - { - "dbInstanceStatus": "BEFORE_CREATE" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "jobId": "jobId-example" } ``` @@ -2797,27 +2808,44 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} --- -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 +### 백업 내보내기 ```http -GET /v3.0/db-flavors +POST /v3.0/backups/{backupId}/export ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | + +

예시 +

+ +```json +{ + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -2829,11 +2857,7 @@ GET /v3.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "vcpus": 1 - } - ] + "jobId": "jobId-example" } ``` @@ -2842,23 +2866,93 @@ GET /v3.0/db-flavors --- -## storages - -### 스토리지 목록 보기 +### 백업 복원하기 ```http -GET /v3.0/storages +POST /v3.0/backups/{backupId}/restore ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR4", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storages | Body | Array | 스토리지 목록 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -2870,7 +2964,7 @@ GET /v3.0/storages "resultMessage": "SUCCESS", "isSuccessful": true }, - "storages": [] + "jobId": "jobId-example" } ``` @@ -2879,12 +2973,21 @@ GET /v3.0/storages --- -## 네트워크 +## DB 보안 그룹 -### 서브넷 목록 보기 +### DB 보안 그룹 진행 상태 + +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | + +### DB 보안 그룹 목록 보기 ```http -GET /v3.0/network/subnets +GET /v3.0/db-security-groups ``` #### 요청 @@ -2895,12 +2998,13 @@ GET /v3.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -2912,9 +3016,9 @@ GET /v3.0/network/subnets "resultMessage": "SUCCESS", "isSuccessful": true }, - "subnets": [ + "dbSecurityGroups": [ { - "availableIpCount": 1 + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2925,23 +3029,51 @@ GET /v3.0/network/subnets --- -## 데이터 스토리지 - -### 스토리지 타입 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v3.0/storage-types +POST /v3.0/db-security-groups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ + { + "description": "description-example" + } + ] +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storageTypes | Body | Array | 스토리지 타입 목록 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -2953,7 +3085,7 @@ GET /v3.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -2962,41 +3094,63 @@ GET /v3.0/storage-types --- -## 모니터링 - -### 통계 정보 조회 +### DB 보안 그룹 삭제하기 ```http -GET /v3.0/metric-statistics +DELETE /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 이 API는 응답 본문을 반환하지 않습니다. --- -### Metric 목록 보기 +### DB 보안 그룹 상세 보기 ```http -GET /v3.0/metrics +GET /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | String | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| dbSecurityGroup | Body | Object | DB 보안 그룹 | +| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | +| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | +| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | +| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | +| dbSecurityGroup.rules.cidr | Body | String | CIDR | +| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | +| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3008,11 +3162,19 @@ GET /v3.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "unit": "unit-example" - } - ] + "dbSecurityGroup": { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -3021,73 +3183,43 @@ GET /v3.0/metrics --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | - -### 백업 목록 조회 +### DB 보안 그룹 수정하기 ```http -GET /v3.0/backups +PUT /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| backups.createdYmdt | Body | DateTime | 생성 일시 | -| backups.updatedYmdt | Body | DateTime | 수정 일시 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "backups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 백업 삭제하기 +### DB 보안 그룹 규칙 삭제하기 ```http -DELETE /v3.0/backups/{backupId} +DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 @@ -3096,7 +3228,8 @@ DELETE /v3.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | #### 응답 @@ -3123,33 +3256,40 @@ DELETE /v3.0/backups/{backupId} --- -### 백업 내보내기 +### DB 보안 그룹 규칙 생성하기 ```http -POST /v3.0/backups/{backupId}/export +POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | -| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |
예시

```json { - "tenantId": "tenantId-example", - "username": "username-example", - "password": "password-example", - "targetContainer": "targetContainer-example", - "objectPath": "objectPath-example" + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3181,82 +3321,41 @@ POST /v3.0/backups/{backupId}/export --- -### 백업 복원하기 +### DB 보안 그룹 규칙 수정하기 ```http -POST /v3.0/backups/{backupId}/restore +PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | -| storage | Body | Object | O | 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 스토리지 타입 | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "dbInstanceName": "dbInstanceName", - "description": "description-example", - "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbPort": 1, - "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbSecurityGroupIds": [], - "userGroupIds": [], - "useHighAvailability": false, - "pingInterval": 3, - "useDefaultNotification": false, - "useDeletionProtection": false, - "network": { - "subnetId": "550e8400-e29b-41d4-a716-446655440000", - "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" - }, - "storage": { - "storageType": "ENUM_VALUE", - "storageSize": 20 + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 }, - "backup": { - "backupPeriod": 0, - "backupRetryCount": 0, - "ftwrlWaitTimeout": 1800, - "replicationRegion": "KR4", - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3288,12 +3387,12 @@ POST /v3.0/backups/{backupId}/restore --- -## 사용자 그룹 +## 파라미터 그룹 -### 사용자 그룹 목록 보기 +### 파라미터 그룹 목록 보기 ```http -GET /v3.0/user-groups +GET /v3.0/parameter-groups ``` #### 요청 @@ -3304,11 +3403,14 @@ GET /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시 | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3320,7 +3422,7 @@ GET /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "parameterGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3333,28 +3435,28 @@ GET /v3.0/user-groups --- -### 사용자 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v3.0/user-groups +POST /v3.0/parameter-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAllYN": false + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -3365,7 +3467,7 @@ POST /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -3377,7 +3479,7 @@ POST /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3386,10 +3488,10 @@ POST /v3.0/user-groups --- -### 사용자 그룹 삭제하기 +### 파라미터 그룹 삭제하기 ```http -DELETE /v3.0/user-groups/{userGroupId} +DELETE /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -3398,7 +3500,7 @@ DELETE /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -3406,10 +3508,10 @@ DELETE /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 상세 보기 +### 파라미터 그룹 상세 보기 ```http -GET /v3.0/user-groups/{userGroupId} +GET /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -3418,17 +3520,27 @@ GET /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -3442,12 +3554,14 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", - "userGroupName": "userGroupName-example", - "userGroupTypeCode": "ENTIRE", - "members": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "memberId": "memberId-example" + "applyType": "BOTH" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -3460,30 +3574,28 @@ GET /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 수정하기 +### 파라미터 그룹 수정하기 ```http -PUT /v3.0/user-groups/{userGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAllYN": false -} + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} ```

@@ -3495,30 +3607,38 @@ PUT /v3.0/user-groups/{userGroupId} --- -## 알림 그룹 - -### 알림 그룹 목록 보기 +### 파라미터 그룹 복사하기 ```http -GET /v3.0/notification-groups +POST /v3.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -3530,11 +3650,7 @@ GET /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3543,34 +3659,31 @@ GET /v3.0/notification-groups --- -### 알림 그룹 생성하기 +### 파라미터 수정하기 ```http -POST /v3.0/notification-groups +PUT /v3.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "notificationGroupName": "notificationGroupName", - "notifyEmail": true, - "notifySms": true, - "isEnabled": true, - "dbInstanceIds": [], - "userGroupIds": [] + "modifiedParameters": [ + { + "value": "value-example" + } + ] } ``` @@ -3579,33 +3692,14 @@ POST /v3.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | - -

예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "notificationGroupId": "notificationGroupId-example" -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 재설정하기 ```http -DELETE /v3.0/notification-groups/{notificationGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId}/reset ``` #### 요청 @@ -3614,7 +3708,7 @@ DELETE /v3.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -3622,37 +3716,27 @@ DELETE /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 상세 보기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -GET /v3.0/notification-groups/{notificationGroupId} +GET /v3.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | | userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3664,23 +3748,11 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstances": [ - { - "dbInstanceName": "dbInstanceName-example" - } - ], "userGroups": [ { - "userGroupName": "userGroupName-example" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -3689,35 +3761,28 @@ GET /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v3.0/notification-groups/{notificationGroupId} +POST /v3.0/user-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstanceIds": [], - "userGroupIds": [] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -3726,42 +3791,9 @@ PUT /v3.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. - ---- - -## 이벤트 - -### 이벤트 카테고리 - -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. - -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | - -### 구독 가능한 이벤트 코드 목록 보기 - -```http -GET /v3.0/event-codes -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

@@ -3773,11 +3805,7 @@ GET /v3.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ - { - "eventCategoryType": "ALL" - } - ] + "userGroupId": "userGroupId-example" } ``` @@ -3786,30 +3814,51 @@ GET /v3.0/event-codes --- -### 이벤트 목록 조회 +### 사용자 그룹 삭제하기 ```http -GET /v3.0/events +DELETE /v3.0/user-groups/{userGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 + +```http +GET /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메세지 목록 | -| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | -| events.messages.message | Body | String | 이벤트 메세지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 | +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3821,12 +3870,16 @@ GET /v3.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "events": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "eventYmdt": "2023-12-31T15:00:00+09:00" + "memberId": "memberId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3835,12 +3888,47 @@ GET /v3.0/events --- -## 이벤트 구독 +### 사용자 그룹 수정하기 -### 이벤트 구독 목록 조회 +```http +PUT /v3.0/user-groups/{userGroupId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | + +

예시 +

+ +```json +{ + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 알림 그룹 + +### 알림 그룹 목록 보기 ```http -GET /v3.0/event-subscriptions +GET /v3.0/notification-groups ``` #### 요청 @@ -3851,20 +3939,14 @@ GET /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3876,10 +3958,9 @@ GET /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "eventSubscriptions": [ + "notificationGroups": [ { - "createdYmdt": "2023-12-31T15:00:00+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -3890,43 +3971,33 @@ GET /v3.0/event-subscriptions --- -### 이벤트 구독 생성하기 +### 알림 그룹 생성하기 ```http -POST /v3.0/event-subscriptions +POST /v3.0/notification-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |

예시

```json { - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], "userGroupIds": [] } ``` @@ -3938,7 +4009,7 @@ POST /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3950,7 +4021,7 @@ POST /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3959,10 +4030,10 @@ POST /v3.0/event-subscriptions --- -### 이벤트 구독 삭제하기 +### 알림 그룹 삭제하기 ```http -DELETE /v3.0/event-subscriptions/{eventSubscriptionId} +DELETE /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -3971,7 +4042,7 @@ DELETE /v3.0/event-subscriptions/{eventSubscriptionId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | +| notificationGroupId | URL | UUID | O | | #### 응답 @@ -3979,135 +4050,120 @@ DELETE /v3.0/event-subscriptions/{eventSubscriptionId} --- -### 이벤트 구독 수정하기 +### 알림 그룹 상세 보기 ```http -PUT /v3.0/event-subscriptions/{eventSubscriptionId} +GET /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 +이 API는 요청 본문을 요구하지 않습니다. + | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| notificationGroupId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, - "eventCodes": [], - "sources": [ + "isEnabled": false, + "dbInstances": [ { - "eventCategoryType": "ALL" + "dbInstanceName": "dbInstanceName-example" } ], - "userGroupIds": [] + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### 알림 그룹 수정하기 ```http -GET /v3.0/jobs/{jobId} +PUT /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| jobId | URL | UUID | O | | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "jobId": "jobId-example", - "jobStatus": "DELETED", - "resourceRelations": [ - { - "resourceId": "resourceId-example" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 파라미터 그룹 +## 모니터링 -### 파라미터 그룹 목록 보기 +### 통계 정보 조회 ```http -GET /v3.0/parameter-groups +GET /v3.0/metric-statistics ``` #### 요청 @@ -4116,73 +4172,27 @@ GET /v3.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "parameterGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 생성하기 +### Metric 목록 보기 ```http -POST /v3.0/parameter-groups +GET /v3.0/metrics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -| dbVersion | Body | Enum | O | DB 엔진 유형 | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example", - "dbVersion": "ENUM_VALUE" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -4194,7 +4204,11 @@ POST /v3.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "metrics": [ + { + "unit": "unit-example" + } + ] } ``` @@ -4203,61 +4217,38 @@ POST /v3.0/parameter-groups --- -### 파라미터 그룹 삭제하기 - -```http -DELETE /v3.0/parameter-groups/{parameterGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +## 이벤트 -#### 응답 +### 이벤트 카테고리 -이 API는 응답 본문을 반환하지 않습니다. +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. ---- +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -### 파라미터 그룹 상세 보기 +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/event-codes ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | -| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |

예시

@@ -4269,18 +4260,11 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", - "parameterGroupName": "parameterGroupName-example", - "description": "description-example", - "dbVersion": "ENUM_VALUE", - "parameterGroupStatus": "STABLE", - "parameters": [ + "eventCodes": [ { - "applyType": "BOTH" + "eventCategoryType": "ALL" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4289,71 +4273,85 @@ GET /v3.0/parameter-groups/{parameterGroupId} --- -### 파라미터 그룹 수정하기 +### 이벤트 목록 조회 ```http -PUT /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/events ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

```json { - "parameterGroupName": "parameterGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "events": [ + { + "eventYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### 파라미터 그룹 복사하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v3.0/parameter-groups/{parameterGroupId}/copy +GET /v3.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -4365,7 +4363,12 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -4374,31 +4377,44 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy --- -### 파라미터 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/parameters +POST /v3.0/event-subscriptions ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "value": "value-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ``` @@ -4407,51 +4423,9 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. - ---- - -### 파라미터 그룹 재설정하기 - -```http -PUT /v3.0/parameter-groups/{parameterGroupId}/reset -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- - -## 프로젝트 정보 - -### 프로젝트 멤버 목록 보기 - -```http -GET /v3.0/project/members -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -4463,11 +4437,7 @@ GET /v3.0/project/members "resultMessage": "SUCCESS", "isSuccessful": true }, - "members": [ - { - "phoneNumber": "phoneNumber-example" - } - ] + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -4476,44 +4446,74 @@ GET /v3.0/project/members --- -### 리전 목록 보기 +### 이벤트 구독 삭제하기 ```http -GET /v3.0/project/regions +DELETE /v3.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v3.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "regions": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "isEnabled": false + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- diff --git a/ko/api-guide-v3.0.md b/ko/api-guide-v3.0.md index 97c9a80b..cdbf3b08 100644 --- a/ko/api-guide-v3.0.md +++ b/ko/api-guide-v3.0.md @@ -4,13 +4,16 @@ ### 인증 및 권한 -RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. -발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. +RDS for MySQL 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](/nhncloud/ko/public-api/user-access-key)를 참고하세요. +생성된 Key는 Appkey와 함께 요청 Header에 포함해야 합니다. | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| | X-TC-APP-KEY | Header | String | O | RDS for MySQL 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +| X-TC-AUTHENTICATION-ID | Header | String | O | API 보안 설정 메뉴의 User Access Key ID | +| X-TC-AUTHENTICATION-SECRET | Header | String | O | API 보안 설정 메뉴의 Secret Access Key | 또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MySQL ADMIN`, `RDS for MySQL VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. @@ -47,7 +50,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | - ### API 엔드포인트 | 리전 | 엔드포인트 | @@ -89,21 +91,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 프로젝트 정보 -### DB 보안 그룹 목록 보기 +### 프로젝트 멤버 목록 보기 ```http -GET /v3.0/db-security-groups +GET /v3.0/project/members ``` #### 요청 @@ -114,13 +107,11 @@ GET /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -132,9 +123,9 @@ GET /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ + "members": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -145,51 +136,23 @@ GET /v3.0/db-security-groups --- -### DB 보안 그룹 생성하기 +### 리전 목록 보기 ```http -POST /v3.0/db-security-groups +GET /v3.0/project/regions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| rules.cidr | Body | String | O | CIDR | -| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | - -

예시 -

- -```json -{ - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example", - "rules": [ - { - "description": "description-example" - } - ] -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |
예시

@@ -201,7 +164,11 @@ POST /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "regions": [ + { + "isEnabled": false + } + ] } ``` @@ -210,63 +177,27 @@ POST /v3.0/db-security-groups --- -### DB 보안 그룹 삭제하기 - -```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- +## DB 인스턴스 사양 -### DB 보안 그룹 상세 보기 +### DB 인스턴스 사양 목록 보기 ```http -GET /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/db-flavors ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroup | Body | Object | DB 보안 그룹 | -| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | -| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | -| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | -| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | -| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | -| dbSecurityGroup.rules.cidr | Body | String | CIDR | -| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | -| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 | +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |

예시

@@ -278,19 +209,11 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "dbSecurityGroupId-example", - "dbSecurityGroupName": "dbSecurityGroupName-example", - "description": "description-example", - "progressStatus": "NONE", - "rules": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ``` @@ -299,59 +222,72 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 수정하기 +## 네트워크 + +### 서브넷 목록 보기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId} +GET /v3.0/network/subnets ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### DB 보안 그룹 규칙 삭제하기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v3.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleIds | Query | String | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |
예시

@@ -363,7 +299,11 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "dbVersions": [ + { + "restorableFromObs": false + } + ] } ``` @@ -372,51 +312,23 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 생성하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v3.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| storageTypes | Body | Array | 스토리지 타입 목록 |
예시

@@ -428,7 +340,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "storageTypes": [] } ``` @@ -437,52 +349,85 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 수정하기 +### 스토리지 목록 보기 ```http -PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +GET /v3.0/storages ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storages | Body | Array | 스토리지 목록 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "cidr": "cidr-example", - "description": "description-example" + "storages": [] } ```

+--- + +## 작업 정보 + +### 작업 상태 + +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 + +```http +GET /v3.0/jobs/{jobId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -494,7 +439,15 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ + { + "resourceId": "resourceId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -503,12 +456,12 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} --- -## DB 엔진 +## DB 인스턴스 그룹 -### DB 엔진 목록 보기 +### DB 인스턴스 그룹 목록 보기 ```http -GET /v3.0/db-versions +GET /v3.0/db-instance-groups ``` #### 요청 @@ -519,10 +472,11 @@ GET /v3.0/db-versions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -534,9 +488,9 @@ GET /v3.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ + "dbInstanceGroups": [ { - "restorableFromObs": false + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -547,6 +501,60 @@ GET /v3.0/db-versions --- +### DB 인스턴스 그룹 상세 보기 + +```http +GET /v3.0/db-instance-groups/{dbInstanceGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ + { + "dbInstanceStatus": "BEFORE_CREATE" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" +} +``` + +

+
+ +--- + ## DB 인스턴스 ### DB 인스턴스 상태 @@ -2700,12 +2708,22 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info --- -## DB 인스턴스 그룹 +## 백업 -### DB 인스턴스 그룹 목록 보기 +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | + +### 백업 목록 조회 ```http -GET /v3.0/db-instance-groups +GET /v3.0/backups ``` #### 요청 @@ -2716,11 +2734,18 @@ GET /v3.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -2732,7 +2757,8 @@ GET /v3.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ + "totalCounts": 1, + "backups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -2745,10 +2771,10 @@ GET /v3.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +### 백업 삭제하기 ```http -GET /v3.0/db-instance-groups/{dbInstanceGroupId} +DELETE /v3.0/backups/{backupId} ``` #### 요청 @@ -2757,20 +2783,13 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbInstanceGroupId | URL | UUID | O | | +| backupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -2782,15 +2801,7 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", - "replicationType": "STANDALONE", - "dbInstances": [ - { - "dbInstanceStatus": "BEFORE_CREATE" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "jobId": "jobId-example" } ``` @@ -2799,27 +2810,44 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} --- -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 +### 백업 내보내기 ```http -GET /v3.0/db-flavors +POST /v3.0/backups/{backupId}/export ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | + +

예시 +

+ +```json +{ + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -2831,11 +2859,7 @@ GET /v3.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "vcpus": 1 - } - ] + "jobId": "jobId-example" } ``` @@ -2844,23 +2868,93 @@ GET /v3.0/db-flavors --- -## storages - -### 스토리지 목록 보기 +### 백업 복원하기 ```http -GET /v3.0/storages +POST /v3.0/backups/{backupId}/restore ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +

예시 +

+ +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20 + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storages | Body | Array | 스토리지 목록 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -2872,7 +2966,7 @@ GET /v3.0/storages "resultMessage": "SUCCESS", "isSuccessful": true }, - "storages": [] + "jobId": "jobId-example" } ``` @@ -2881,12 +2975,21 @@ GET /v3.0/storages --- -## 네트워크 +## DB 보안 그룹 -### 서브넷 목록 보기 +### DB 보안 그룹 진행 상태 + +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | + +### DB 보안 그룹 목록 보기 ```http -GET /v3.0/network/subnets +GET /v3.0/db-security-groups ``` #### 요청 @@ -2897,12 +3000,13 @@ GET /v3.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -2914,9 +3018,9 @@ GET /v3.0/network/subnets "resultMessage": "SUCCESS", "isSuccessful": true }, - "subnets": [ + "dbSecurityGroups": [ { - "availableIpCount": 1 + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2927,23 +3031,51 @@ GET /v3.0/network/subnets --- -## 데이터 스토리지 - -### 스토리지 타입 목록 보기 +### DB 보안 그룹 생성하기 ```http -GET /v3.0/storage-types +POST /v3.0/db-security-groups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ + { + "description": "description-example" + } + ] +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storageTypes | Body | Array | 스토리지 타입 목록 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -2955,7 +3087,7 @@ GET /v3.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -2964,41 +3096,63 @@ GET /v3.0/storage-types --- -## 모니터링 - -### 통계 정보 조회 +### DB 보안 그룹 삭제하기 ```http -GET /v3.0/metric-statistics +DELETE /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 이 API는 응답 본문을 반환하지 않습니다. --- -### Metric 목록 보기 +### DB 보안 그룹 상세 보기 ```http -GET /v3.0/metrics +GET /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | String | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| dbSecurityGroup | Body | Object | DB 보안 그룹 | +| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | +| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| dbSecurityGroup.rules.port | Body | Object | 포트 객체 | +| dbSecurityGroup.rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| dbSecurityGroup.rules.port.minPort | Body | Number | 최소 포트 범위 | +| dbSecurityGroup.rules.port.maxPort | Body | Number | 최대 포트 범위 | +| dbSecurityGroup.rules.cidr | Body | String | CIDR | +| dbSecurityGroup.rules.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.rules.updatedYmdt | Body | DateTime | 수정 일시 | +| dbSecurityGroup.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroup.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3010,11 +3164,19 @@ GET /v3.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "unit": "unit-example" - } - ] + "dbSecurityGroup": { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -3023,73 +3185,43 @@ GET /v3.0/metrics --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | - -### 백업 목록 조회 +### DB 보안 그룹 수정하기 ```http -GET /v3.0/backups +PUT /v3.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| backups.createdYmdt | Body | DateTime | 생성 일시 | -| backups.updatedYmdt | Body | DateTime | 수정 일시 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "backups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 백업 삭제하기 +### DB 보안 그룹 규칙 삭제하기 ```http -DELETE /v3.0/backups/{backupId} +DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 @@ -3098,7 +3230,8 @@ DELETE /v3.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | #### 응답 @@ -3125,33 +3258,40 @@ DELETE /v3.0/backups/{backupId} --- -### 백업 내보내기 +### DB 보안 그룹 규칙 생성하기 ```http -POST /v3.0/backups/{backupId}/export +POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | -| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |
예시

```json { - "tenantId": "tenantId-example", - "username": "username-example", - "password": "password-example", - "targetContainer": "targetContainer-example", - "objectPath": "objectPath-example" + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3183,82 +3323,41 @@ POST /v3.0/backups/{backupId}/export --- -### 백업 복원하기 +### DB 보안 그룹 규칙 수정하기 ```http -POST /v3.0/backups/{backupId}/restore +PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | -| storage | Body | Object | O | 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 스토리지 타입 | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "dbInstanceName": "dbInstanceName", - "description": "description-example", - "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbPort": 1, - "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbSecurityGroupIds": [], - "userGroupIds": [], - "useHighAvailability": false, - "pingInterval": 3, - "useDefaultNotification": false, - "useDeletionProtection": false, - "network": { - "subnetId": "550e8400-e29b-41d4-a716-446655440000", - "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" - }, - "storage": { - "storageType": "ENUM_VALUE", - "storageSize": 20 + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 }, - "backup": { - "backupPeriod": 0, - "backupRetryCount": 0, - "ftwrlWaitTimeout": 1800, - "replicationRegion": "KR1", - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3290,12 +3389,12 @@ POST /v3.0/backups/{backupId}/restore --- -## 사용자 그룹 +## 파라미터 그룹 -### 사용자 그룹 목록 보기 +### 파라미터 그룹 목록 보기 ```http -GET /v3.0/user-groups +GET /v3.0/parameter-groups ``` #### 요청 @@ -3306,11 +3405,14 @@ GET /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시 | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3322,7 +3424,7 @@ GET /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "parameterGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3335,28 +3437,28 @@ GET /v3.0/user-groups --- -### 사용자 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v3.0/user-groups +POST /v3.0/parameter-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAllYN": false + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -3367,7 +3469,7 @@ POST /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -3379,7 +3481,7 @@ POST /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3388,10 +3490,10 @@ POST /v3.0/user-groups --- -### 사용자 그룹 삭제하기 +### 파라미터 그룹 삭제하기 ```http -DELETE /v3.0/user-groups/{userGroupId} +DELETE /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -3400,7 +3502,7 @@ DELETE /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -3408,10 +3510,10 @@ DELETE /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 상세 보기 +### 파라미터 그룹 상세 보기 ```http -GET /v3.0/user-groups/{userGroupId} +GET /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -3420,17 +3522,27 @@ GET /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -3444,12 +3556,14 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", - "userGroupName": "userGroupName-example", - "userGroupTypeCode": "ENTIRE", - "members": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "memberId": "memberId-example" + "applyType": "BOTH" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -3462,30 +3576,28 @@ GET /v3.0/user-groups/{userGroupId} --- -### 사용자 그룹 수정하기 +### 파라미터 그룹 수정하기 ```http -PUT /v3.0/user-groups/{userGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAllYN": false -} + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} ```

@@ -3497,30 +3609,38 @@ PUT /v3.0/user-groups/{userGroupId} --- -## 알림 그룹 - -### 알림 그룹 목록 보기 +### 파라미터 그룹 복사하기 ```http -GET /v3.0/notification-groups +POST /v3.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -3532,11 +3652,7 @@ GET /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -3545,34 +3661,31 @@ GET /v3.0/notification-groups --- -### 알림 그룹 생성하기 +### 파라미터 수정하기 ```http -POST /v3.0/notification-groups +PUT /v3.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "notificationGroupName": "notificationGroupName", - "notifyEmail": true, - "notifySms": true, - "isEnabled": true, - "dbInstanceIds": [], - "userGroupIds": [] + "modifiedParameters": [ + { + "value": "value-example" + } + ] } ``` @@ -3581,33 +3694,14 @@ POST /v3.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | - -

예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "notificationGroupId": "notificationGroupId-example" -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 재설정하기 ```http -DELETE /v3.0/notification-groups/{notificationGroupId} +PUT /v3.0/parameter-groups/{parameterGroupId}/reset ``` #### 요청 @@ -3616,7 +3710,7 @@ DELETE /v3.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -3624,37 +3718,27 @@ DELETE /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 상세 보기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -GET /v3.0/notification-groups/{notificationGroupId} +GET /v3.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | | userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3666,23 +3750,11 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstances": [ - { - "dbInstanceName": "dbInstanceName-example" - } - ], "userGroups": [ { - "userGroupName": "userGroupName-example" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -3691,35 +3763,28 @@ GET /v3.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v3.0/notification-groups/{notificationGroupId} +POST /v3.0/user-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstanceIds": [], - "userGroupIds": [] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false } ``` @@ -3728,42 +3793,9 @@ PUT /v3.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. - ---- - -## 이벤트 - -### 이벤트 카테고리 - -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. - -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | - -### 구독 가능한 이벤트 코드 목록 보기 - -```http -GET /v3.0/event-codes -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupId | Body | String | 사용자 그룹의 식별자 |

예시

@@ -3775,11 +3807,7 @@ GET /v3.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ - { - "eventCategoryType": "ALL" - } - ] + "userGroupId": "userGroupId-example" } ``` @@ -3788,30 +3816,51 @@ GET /v3.0/event-codes --- -### 이벤트 목록 조회 +### 사용자 그룹 삭제하기 ```http -GET /v3.0/events +DELETE /v3.0/user-groups/{userGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 + +```http +GET /v3.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메세지 목록 | -| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | -| events.messages.message | Body | String | 이벤트 메세지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 | +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3823,12 +3872,16 @@ GET /v3.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "events": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "eventYmdt": "2023-12-31T15:00:00+09:00" + "memberId": "memberId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3837,12 +3890,47 @@ GET /v3.0/events --- -## 이벤트 구독 +### 사용자 그룹 수정하기 -### 이벤트 구독 목록 조회 +```http +PUT /v3.0/user-groups/{userGroupId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAllYN | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | + +

예시 +

+ +```json +{ + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAllYN": false +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +## 알림 그룹 + +### 알림 그룹 목록 보기 ```http -GET /v3.0/event-subscriptions +GET /v3.0/notification-groups ``` #### 요청 @@ -3853,20 +3941,14 @@ GET /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3878,10 +3960,9 @@ GET /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "eventSubscriptions": [ + "notificationGroups": [ { - "createdYmdt": "2023-12-31T15:00:00+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -3892,43 +3973,33 @@ GET /v3.0/event-subscriptions --- -### 이벤트 구독 생성하기 +### 알림 그룹 생성하기 ```http -POST /v3.0/event-subscriptions +POST /v3.0/notification-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |

예시

```json { - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], "userGroupIds": [] } ``` @@ -3940,7 +4011,7 @@ POST /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -3952,7 +4023,7 @@ POST /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -3961,10 +4032,10 @@ POST /v3.0/event-subscriptions --- -### 이벤트 구독 삭제하기 +### 알림 그룹 삭제하기 ```http -DELETE /v3.0/event-subscriptions/{eventSubscriptionId} +DELETE /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -3973,7 +4044,7 @@ DELETE /v3.0/event-subscriptions/{eventSubscriptionId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | +| notificationGroupId | URL | UUID | O | | #### 응답 @@ -3981,135 +4052,120 @@ DELETE /v3.0/event-subscriptions/{eventSubscriptionId} --- -### 이벤트 구독 수정하기 +### 알림 그룹 상세 보기 ```http -PUT /v3.0/event-subscriptions/{eventSubscriptionId} +GET /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 +이 API는 요청 본문을 요구하지 않습니다. + | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| notificationGroupId | URL | UUID | O | | + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

```json { - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, - "eventCodes": [], - "sources": [ + "isEnabled": false, + "dbInstances": [ { - "eventCategoryType": "ALL" + "dbInstanceName": "dbInstanceName-example" } ], - "userGroupIds": [] + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### 알림 그룹 수정하기 ```http -GET /v3.0/jobs/{jobId} +PUT /v3.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| jobId | URL | UUID | O | | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "jobId": "jobId-example", - "jobStatus": "DELETED", - "resourceRelations": [ - { - "resourceId": "resourceId-example" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 파라미터 그룹 +## 모니터링 -### 파라미터 그룹 목록 보기 +### 통계 정보 조회 ```http -GET /v3.0/parameter-groups +GET /v3.0/metric-statistics ``` #### 요청 @@ -4118,73 +4174,27 @@ GET /v3.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "parameterGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 생성하기 +### Metric 목록 보기 ```http -POST /v3.0/parameter-groups +GET /v3.0/metrics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -| dbVersion | Body | Enum | O | DB 엔진 유형 | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example", - "dbVersion": "ENUM_VALUE" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -4196,7 +4206,11 @@ POST /v3.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "metrics": [ + { + "unit": "unit-example" + } + ] } ``` @@ -4205,61 +4219,38 @@ POST /v3.0/parameter-groups --- -### 파라미터 그룹 삭제하기 - -```http -DELETE /v3.0/parameter-groups/{parameterGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +## 이벤트 -#### 응답 +### 이벤트 카테고리 -이 API는 응답 본문을 반환하지 않습니다. +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. ---- +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -### 파라미터 그룹 상세 보기 +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/event-codes ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | -| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |

예시

@@ -4271,18 +4262,11 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", - "parameterGroupName": "parameterGroupName-example", - "description": "description-example", - "dbVersion": "ENUM_VALUE", - "parameterGroupStatus": "STABLE", - "parameters": [ + "eventCodes": [ { - "applyType": "BOTH" + "eventCategoryType": "ALL" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4291,71 +4275,85 @@ GET /v3.0/parameter-groups/{parameterGroupId} --- -### 파라미터 그룹 수정하기 +### 이벤트 목록 조회 ```http -PUT /v3.0/parameter-groups/{parameterGroupId} +GET /v3.0/events ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

```json { - "parameterGroupName": "parameterGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "events": [ + { + "eventYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### 파라미터 그룹 복사하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v3.0/parameter-groups/{parameterGroupId}/copy +GET /v3.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -4367,7 +4365,12 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -4376,31 +4379,44 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy --- -### 파라미터 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v3.0/parameter-groups/{parameterGroupId}/parameters +POST /v3.0/event-subscriptions ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "value": "value-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ``` @@ -4409,51 +4425,9 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. - ---- - -### 파라미터 그룹 재설정하기 - -```http -PUT /v3.0/parameter-groups/{parameterGroupId}/reset -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- - -## 프로젝트 정보 - -### 프로젝트 멤버 목록 보기 - -```http -GET /v3.0/project/members -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -4465,11 +4439,7 @@ GET /v3.0/project/members "resultMessage": "SUCCESS", "isSuccessful": true }, - "members": [ - { - "phoneNumber": "phoneNumber-example" - } - ] + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -4478,44 +4448,74 @@ GET /v3.0/project/members --- -### 리전 목록 보기 +### 이벤트 구독 삭제하기 ```http -GET /v3.0/project/regions +DELETE /v3.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 이벤트 구독 수정하기 + +```http +PUT /v3.0/event-subscriptions/{eventSubscriptionId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "regions": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "isEnabled": false + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- diff --git a/ko/api-guide-v4.0-gov.md b/ko/api-guide-v4.0-gov.md index 8d753653..6f638b42 100644 --- a/ko/api-guide-v4.0-gov.md +++ b/ko/api-guide-v4.0-gov.md @@ -87,21 +87,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 프로젝트 정보 -### DB 보안 그룹 목록 보기 +### 프로젝트 멤버 목록 보기 ```http -GET /v4.0/db-security-groups +GET /v4.0/project/members ``` #### 요청 @@ -112,14 +103,11 @@ GET /v4.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -131,10 +119,9 @@ GET /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "dbSecurityGroups": [ + "members": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -145,38 +132,37 @@ GET /v4.0/db-security-groups --- -### DB 보안 그룹 생성하기 +### 리전 목록 보기 ```http -POST /v4.0/db-security-groups +GET /v4.0/project/regions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| rules.cidr | Body | String | O | CIDR | -| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example", - "rules": [ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "regions": [ { - "description": "description-example" + "isEnabled": false } ] } @@ -185,11 +171,29 @@ POST /v4.0/db-security-groups

+--- + +## DB 인스턴스 사양 + +### DB 인스턴스 사양 목록 보기 + +```http +GET /v4.0/db-flavors +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -201,7 +205,11 @@ POST /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ``` @@ -210,62 +218,72 @@ POST /v4.0/db-security-groups --- -### DB 보안 그룹 삭제하기 +## 네트워크 + +### 서브넷 목록 보기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/network/subnets ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] +} +``` + +

+
--- -### DB 보안 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | CIDR | -| rules.createdYmdt | Body | DateTime | 생성 일시 | -| rules.updatedYmdt | Body | DateTime | 수정 일시 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |
예시

@@ -277,17 +295,11 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example", - "dbSecurityGroupName": "dbSecurityGroupName-example", - "description": "description-example", - "progressStatus": "NONE", - "rules": [ + "dbVersions": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "restorableFromObs": false } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -296,43 +308,66 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 수정하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storageTypes": [] } ```

-#### 응답 +--- -이 API는 응답 본문을 반환하지 않습니다. +## 작업 정보 ---- +### 작업 상태 -### DB 보안 그룹 규칙 삭제하기 +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v4.0/jobs/{jobId} ``` #### 요청 @@ -341,14 +376,19 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleIds | Query | String | O | | +| jobId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -360,7 +400,15 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ + { + "resourceId": "resourceId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -369,51 +417,27 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 생성하기 +## DB 인스턴스 그룹 + +### DB 인스턴스 그룹 목록 보기 ```http -POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v4.0/db-instance-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -425,7 +449,11 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "dbInstanceGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -434,92 +462,32 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 수정하기 +### DB 인스턴스 그룹 상세 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` #### 요청 +이 API는 요청 본문을 요구하지 않습니다. + | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
- -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "jobId": "jobId-example" -} -``` - -

-
- ---- - -## DB 엔진 - -### DB 엔진 목록 보기 - -```http -GET /v4.0/db-versions -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. +| dbInstanceGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -531,11 +499,15 @@ GET /v4.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ { - "restorableFromObs": false + "dbInstanceStatus": "BEFORE_CREATE" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3231,12 +3203,22 @@ PUT /v4.0/db-instances/{dbInstanceId}/storage-info --- -## DB 인스턴스 그룹 +## 백업 -### DB 인스턴스 그룹 목록 보기 +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | + +### 백업 목록 조회 ```http -GET /v4.0/db-instance-groups +GET /v4.0/backups ``` #### 요청 @@ -3247,11 +3229,18 @@ GET /v4.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3263,7 +3252,8 @@ GET /v4.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ + "totalCounts": 1, + "backups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3276,32 +3266,41 @@ GET /v4.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +### 백업 생성하기 ```http -GET /v4.0/db-instance-groups/{dbInstanceGroupId} +POST /v4.0/backups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbInstanceGroupId | URL | UUID | O | | +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | +| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | +| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` | + +

예시 +

+ +```json +{ + "backupName": "backupName", + "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "backupMethodType": "FULL" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3313,15 +3312,7 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", - "replicationType": "STANDALONE", - "dbInstances": [ - { - "dbInstanceStatus": "BEFORE_CREATE" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3330,27 +3321,25 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} --- -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 +### 백업 삭제하기 ```http -GET /v4.0/db-flavors +DELETE /v4.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

@@ -3362,11 +3351,7 @@ GET /v4.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "vcpus": 1 - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3375,26 +3360,42 @@ GET /v4.0/db-flavors --- -## 가용성 영역 - -### 가용성 영역 목록 보기 +### 백업 단건 조회 ```http -GET /v4.0/availability-zones +GET /v4.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| availabilityZones | Body | Array | 가용성 영역 목록 | -| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | -| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | -| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 | +| backup | Body | Object | 백업 상세 정보 | +| backup.backupId | Body | String | 백업의 식별자 | +| backup.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | +| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| backup.dbVersion | Body | Enum | DB 엔진 버전 | +| backup.utilVersion | Body | String | 유틸리티 버전 | +| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | +| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | +| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | +| backup.backupSize | Body | Number | 백업의 크기(Byte) | +| backup.isReplicable | Body | Boolean | 복제 가능 여부 | +| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | +| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | +| backup.createdYmdt | Body | DateTime | 생성 일시 | +| backup.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3406,13 +3407,26 @@ GET /v4.0/availability-zones "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZones": [ - { - "zoneState": { - "available": false - } - } - ] + "backup": { + "backupId": "backupId-example", + "regionCode": "KR1", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupMethodType": "FULL", + "backupFileType": "XBSTREAM", + "backupSize": 1, + "isReplicable": false, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -3421,69 +3435,44 @@ GET /v4.0/availability-zones --- -## 네트워크 - -### 서브넷 목록 보기 +### 백업 내보내기 ```http -GET /v4.0/network/subnets +POST /v4.0/backups/{backupId}/export ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "subnets": [ - { - "availableIpCount": 1 - } - ] + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

---- - -## 데이터 스토리지 - -### 스토리지 타입 목록 보기 - -```http -GET /v4.0/storage-types -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storageTypes | Body | Array | 스토리지 타입 목록 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3495,7 +3484,7 @@ GET /v4.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3504,41 +3493,114 @@ GET /v4.0/storage-types --- -## 모니터링 - -### 통계 정보 조회 +### 백업 복원하기 ```http -GET /v4.0/metric-statistics +POST /v4.0/backups/{backupId}/restore ``` -#### 요청 +#### 공통 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | +| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | -#### 응답 +#### 고가용성 사용 시 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | ---- +#### 스토리지 자동 확장 사용 시 -### Metric 목록 보기 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -```http -GET /v4.0/metrics -``` +

예시 +

-#### 요청 +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -이 API는 요청 본문을 요구하지 않습니다. +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | String | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3550,11 +3612,7 @@ GET /v4.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "unit": "unit-example" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3563,22 +3621,21 @@ GET /v4.0/metrics --- -## 백업 +## DB 보안 그룹 -### 백업 상태 +### DB 보안 그룹 진행 상태 -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | -### 백업 목록 조회 +### DB 보안 그룹 목록 보기 ```http -GET /v4.0/backups +GET /v4.0/db-security-groups ``` #### 요청 @@ -3589,18 +3646,14 @@ GET /v4.0/backups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| backups.createdYmdt | Body | DateTime | 생성 일시 | -| backups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3613,7 +3666,7 @@ GET /v4.0/backups "isSuccessful": true }, "totalCounts": 1, - "backups": [ + "dbSecurityGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3626,30 +3679,40 @@ GET /v4.0/backups --- -### 백업 생성하기 +### DB 보안 그룹 생성하기 ```http -POST /v4.0/backups +POST /v4.0/db-security-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | -| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | -| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` | +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |

예시

```json { - "backupName": "backupName", - "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", - "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", - "backupMethodType": "FULL" + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ + { + "description": "description-example" + } + ] } ``` @@ -3660,7 +3723,7 @@ POST /v4.0/backups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |

예시

@@ -3672,7 +3735,7 @@ POST /v4.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -3681,10 +3744,10 @@ POST /v4.0/backups --- -### 백업 삭제하기 +### DB 보안 그룹 삭제하기 ```http -DELETE /v4.0/backups/{backupId} +DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 @@ -3693,13 +3756,50 @@ DELETE /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 상세 보기 + +```http +GET /v4.0/db-security-groups/{dbSecurityGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| rules | Body | Array | DB 보안 그룹 규칙 목록 | +| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | 포트 객체 | +| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | 최소 포트 범위 | +| rules.port.maxPort | Body | Number | 최대 포트 범위 | +| rules.cidr | Body | String | CIDR | +| rules.createdYmdt | Body | DateTime | 생성 일시 | +| rules.updatedYmdt | Body | DateTime | 수정 일시 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3711,7 +3811,17 @@ DELETE /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3720,10 +3830,43 @@ DELETE /v4.0/backups/{backupId} --- -### 백업 단건 조회 +### DB 보안 그룹 수정하기 ```http -GET /v4.0/backups/{backupId} +PUT /v4.0/db-security-groups/{dbSecurityGroupId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 규칙 삭제하기 + +```http +DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 @@ -3732,30 +3875,14 @@ GET /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | String | 백업의 식별자 | -| backup.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | -| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| backup.dbVersion | Body | Enum | DB 엔진 버전 | -| backup.utilVersion | Body | String | 유틸리티 버전 | -| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | -| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | -| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | -| backup.backupSize | Body | Number | 백업의 크기(Byte) | -| backup.isReplicable | Body | Boolean | 복제 가능 여부 | -| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | -| backup.createdYmdt | Body | DateTime | 생성 일시 | -| backup.updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -3767,26 +3894,7 @@ GET /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "backup": { - "backupId": "backupId-example", - "regionCode": "KR1", - "backupName": "backupName-example", - "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", - "utilVersion": "utilVersion-example", - "backupType": "AUTO", - "backupMethodType": "FULL", - "backupFileType": "XBSTREAM", - "backupSize": 1, - "isReplicable": false, - "binLogFileName": "binLogFileName-example", - "binLogPosition": { - }, - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } + "jobId": "jobId-example" } ``` @@ -3795,33 +3903,40 @@ GET /v4.0/backups/{backupId} --- -### 백업 내보내기 +### DB 보안 그룹 규칙 생성하기 ```http -POST /v4.0/backups/{backupId}/export +POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | -| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "tenantId": "tenantId-example", - "username": "username-example", - "password": "password-example", - "targetContainer": "targetContainer-example", - "objectPath": "objectPath-example" + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3832,7 +3947,7 @@ POST /v4.0/backups/{backupId}/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -3844,7 +3959,7 @@ POST /v4.0/backups/{backupId}/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "jobId": "jobId-example" } ``` @@ -3853,103 +3968,41 @@ POST /v4.0/backups/{backupId}/export --- -### 백업 복원하기 +### DB 보안 그룹 규칙 수정하기 ```http -POST /v4.0/backups/{backupId}/restore -``` - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | -| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | -| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | -| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | - -#### 고가용성 사용 시 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +``` -#### 스토리지 자동 확장 사용 시 +#### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "dbInstanceName": "dbInstanceName", - "description": "description-example", - "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbPort": 1, - "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbSecurityGroupIds": [], - "userGroupIds": [], - "useHighAvailability": false, - "pingInterval": 3, - "useDefaultNotification": false, - "useDeletionProtection": false, - "useSlowQueryAnalysis": true, - "network": { - "subnetId": "550e8400-e29b-41d4-a716-446655440000", - "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" - }, - "storage": { - "storageType": "ENUM_VALUE", - "storageSize": 20, - "storageAutoscale": { - "useStorageAutoscale": false - } + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 }, - "backup": { - "backupPeriod": 0, - "backupRetryCount": 0, - "ftwrlWaitTimeout": 0, - "replicationRegion": "KR1", - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3960,7 +4013,7 @@ POST /v4.0/backups/{backupId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -3972,7 +4025,7 @@ POST /v4.0/backups/{backupId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "jobId": "jobId-example" } ``` @@ -3981,12 +4034,12 @@ POST /v4.0/backups/{backupId}/restore --- -## 사용자 그룹 +## 파라미터 그룹 -### 사용자 그룹 목록 보기 +### 파라미터 그룹 목록 보기 ```http -GET /v4.0/user-groups +GET /v4.0/parameter-groups ``` #### 요청 @@ -3997,12 +4050,16 @@ GET /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시 | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 파라미터 그룹 수 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4015,7 +4072,7 @@ GET /v4.0/user-groups "isSuccessful": true }, "totalCounts": 1, - "userGroups": [ + "parameterGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -4028,28 +4085,28 @@ GET /v4.0/user-groups --- -### 사용자 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v4.0/user-groups +POST /v4.0/parameter-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAll": false + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -4060,7 +4117,7 @@ POST /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -4072,7 +4129,7 @@ POST /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4081,10 +4138,10 @@ POST /v4.0/user-groups --- -### 사용자 그룹 삭제하기 +### 파라미터 그룹 삭제하기 ```http -DELETE /v4.0/user-groups/{userGroupId} +DELETE /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -4093,7 +4150,7 @@ DELETE /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -4101,10 +4158,10 @@ DELETE /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 상세 보기 +### 파라미터 그룹 상세 보기 ```http -GET /v4.0/user-groups/{userGroupId} +GET /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -4113,17 +4170,27 @@ GET /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4137,12 +4204,14 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", - "userGroupName": "userGroupName-example", - "userGroupTypeCode": "ENTIRE", - "members": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "memberId": "memberId-example" + "applyType": "BOTH" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4155,29 +4224,27 @@ GET /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 수정하기 +### 파라미터 그룹 수정하기 ```http -PUT /v4.0/user-groups/{userGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAll": false + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ``` @@ -4190,30 +4257,38 @@ PUT /v4.0/user-groups/{userGroupId} --- -## 알림 그룹 - -### 알림 그룹 목록 보기 +### 파라미터 그룹 복사하기 ```http -GET /v4.0/notification-groups +POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -4225,11 +4300,7 @@ GET /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4238,34 +4309,31 @@ GET /v4.0/notification-groups --- -### 알림 그룹 생성하기 +### 파라미터 수정하기 ```http -POST /v4.0/notification-groups +PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "notificationGroupName": "notificationGroupName", - "notifyEmail": true, - "notifySms": true, - "isEnabled": true, - "dbInstanceIds": [], - "userGroupIds": [] + "modifiedParameters": [ + { + "value": "value-example" + } + ] } ``` @@ -4274,33 +4342,14 @@ POST /v4.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | - -

예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "notificationGroupId": "notificationGroupId-example" -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 재설정하기 ```http -DELETE /v4.0/notification-groups/{notificationGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` #### 요청 @@ -4309,7 +4358,7 @@ DELETE /v4.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -4317,37 +4366,28 @@ DELETE /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 상세 보기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -GET /v4.0/notification-groups/{notificationGroupId} +GET /v4.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | | userGroups | Body | Array | 사용자 그룹 목록 | | userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4359,23 +4399,12 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstances": [ - { - "dbInstanceName": "dbInstanceName-example" - } - ], + "totalCounts": 1, "userGroups": [ { - "userGroupName": "userGroupName-example" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4384,35 +4413,28 @@ GET /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v4.0/notification-groups/{notificationGroupId} +POST /v4.0/user-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstanceIds": [], - "userGroupIds": [] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ``` @@ -4421,42 +4443,74 @@ PUT /v4.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "userGroupId": "userGroupId-example" +} +``` + +

+
--- -## 이벤트 +### 사용자 그룹 삭제하기 -### 이벤트 카테고리 +```http +DELETE /v4.0/user-groups/{userGroupId} +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 구독 가능한 이벤트 코드 목록 보기 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 ```http -GET /v4.0/event-codes +GET /v4.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4468,11 +4522,16 @@ GET /v4.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "eventCategoryType": "ALL" + "memberId": "memberId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4481,61 +4540,47 @@ GET /v4.0/event-codes --- -### 이벤트 목록 조회 +### 사용자 그룹 수정하기 ```http -GET /v4.0/events +PUT /v4.0/user-groups/{userGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메세지 목록 | -| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | -| events.messages.message | Body | String | 이벤트 메세지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "events": [ - { - "eventYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 구독 +## 알림 그룹 -### 이벤트 구독 목록 조회 +### 알림 그룹 목록 보기 ```http -GET /v4.0/event-subscriptions +GET /v4.0/notification-groups ``` #### 요청 @@ -4546,20 +4591,14 @@ GET /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4571,10 +4610,9 @@ GET /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "eventSubscriptions": [ + "notificationGroups": [ { - "createdYmdt": "2023-12-31T15:00:00+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -4585,43 +4623,33 @@ GET /v4.0/event-subscriptions --- -### 이벤트 구독 생성하기 +### 알림 그룹 생성하기 ```http -POST /v4.0/event-subscriptions +POST /v4.0/notification-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | - -

예시 -

- -```json -{ - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | + +

예시 +

+ +```json +{ + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], "userGroupIds": [] } ``` @@ -4633,7 +4661,7 @@ POST /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -4645,7 +4673,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -4654,10 +4682,10 @@ POST /v4.0/event-subscriptions --- -### 이벤트 구독 삭제하기 +### 알림 그룹 삭제하기 ```http -DELETE /v4.0/event-subscriptions/{eventSubscriptionId} +DELETE /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -4666,58 +4694,7 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- - -### 이벤트 구독 수정하기 - -```http -PUT /v4.0/event-subscriptions/{eventSubscriptionId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | - -

예시 -

- -```json -{ - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], - "userGroupIds": [] -} -``` - -

-
+| notificationGroupId | URL | UUID | O | | #### 응답 @@ -4725,29 +4702,10 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### 알림 그룹 상세 보기 ```http -GET /v4.0/jobs/{jobId} +GET /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -4756,17 +4714,23 @@ GET /v4.0/jobs/{jobId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| jobId | URL | UUID | O | | +| notificationGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4780,11 +4744,19 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", - "jobStatus": "DELETED", - "resourceRelations": [ + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ { - "resourceId": "resourceId-example" + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4797,90 +4769,82 @@ GET /v4.0/jobs/{jobId} --- -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 +### 알림 그룹 수정하기 ```http -GET /v4.0/parameter-groups +PUT /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 파라미터 그룹 수 | -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "parameterGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 파라미터 그룹 생성하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v4.0/parameter-groups +GET /v4.0/metric-statistics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +이 API는 요청 본문을 요구하지 않습니다. -
예시 -

+#### 응답 -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example", - "dbVersion": "ENUM_VALUE" -} +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### Metric 목록 보기 + +```http +GET /v4.0/metrics ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -4892,7 +4856,11 @@ POST /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "metrics": [ + { + "unit": "unit-example" + } + ] } ``` @@ -4901,61 +4869,38 @@ POST /v4.0/parameter-groups --- -### 파라미터 그룹 삭제하기 - -```http -DELETE /v4.0/parameter-groups/{parameterGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +## 이벤트 -#### 응답 +### 이벤트 카테고리 -이 API는 응답 본문을 반환하지 않습니다. +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. ---- +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -### 파라미터 그룹 상세 보기 +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/event-codes ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | -| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |

예시

@@ -4967,18 +4912,11 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", - "parameterGroupName": "parameterGroupName-example", - "description": "description-example", - "dbVersion": "ENUM_VALUE", - "parameterGroupStatus": "STABLE", - "parameters": [ + "eventCodes": [ { - "applyType": "BOTH" + "eventCategoryType": "ALL" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4987,71 +4925,85 @@ GET /v4.0/parameter-groups/{parameterGroupId} --- -### 파라미터 그룹 수정하기 +### 이벤트 목록 조회 ```http -PUT /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/events ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

```json { - "parameterGroupName": "parameterGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "events": [ + { + "eventYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### 파라미터 그룹 복사하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v4.0/parameter-groups/{parameterGroupId}/copy +GET /v4.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -5063,7 +5015,12 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -5072,31 +5029,44 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy --- -### 파라미터 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/parameters +POST /v4.0/event-subscriptions ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "value": "value-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ``` @@ -5105,14 +5075,33 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "eventSubscriptionId": "eventSubscriptionId-example" +} +``` + +

+
--- -### 파라미터 그룹 재설정하기 +### 이벤트 구독 삭제하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/reset +DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 @@ -5121,7 +5110,7 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +| eventSubscriptionId | URL | UUID | O | | #### 응답 @@ -5129,55 +5118,63 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset --- -## 프로젝트 정보 - -### 프로젝트 멤버 목록 보기 +### 이벤트 구독 수정하기 ```http -GET /v4.0/project/members +PUT /v4.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "phoneNumber": "phoneNumber-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 리전 목록 보기 +## 가용성 영역 + +### 가용성 영역 목록 보기 ```http -GET /v4.0/project/regions +GET /v4.0/availability-zones ``` #### 요청 @@ -5188,9 +5185,10 @@ GET /v4.0/project/regions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| availabilityZones | Body | Array | 가용성 영역 목록 | +| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | +| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | +| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 |
예시

@@ -5202,9 +5200,11 @@ GET /v4.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ + "availabilityZones": [ { - "isEnabled": false + "zoneState": { + "available": false + } } ] } diff --git a/ko/api-guide-v4.0-ncgn.md b/ko/api-guide-v4.0-ncgn.md index f5593487..0e893698 100644 --- a/ko/api-guide-v4.0-ncgn.md +++ b/ko/api-guide-v4.0-ncgn.md @@ -87,21 +87,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 프로젝트 정보 -### DB 보안 그룹 목록 보기 +### 프로젝트 멤버 목록 보기 ```http -GET /v4.0/db-security-groups +GET /v4.0/project/members ``` #### 요청 @@ -112,14 +103,11 @@ GET /v4.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |

예시

@@ -131,10 +119,9 @@ GET /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "dbSecurityGroups": [ + "members": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -145,38 +132,37 @@ GET /v4.0/db-security-groups --- -### DB 보안 그룹 생성하기 +### 리전 목록 보기 ```http -POST /v4.0/db-security-groups +GET /v4.0/project/regions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| rules.cidr | Body | String | O | CIDR | -| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example", - "rules": [ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "regions": [ { - "description": "description-example" + "isEnabled": false } ] } @@ -185,11 +171,29 @@ POST /v4.0/db-security-groups

+--- + +## DB 인스턴스 사양 + +### DB 인스턴스 사양 목록 보기 + +```http +GET /v4.0/db-flavors +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -201,7 +205,11 @@ POST /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ``` @@ -210,62 +218,72 @@ POST /v4.0/db-security-groups --- -### DB 보안 그룹 삭제하기 +## 네트워크 + +### 서브넷 목록 보기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/network/subnets ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] +} +``` + +

+
--- -### DB 보안 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | CIDR | -| rules.createdYmdt | Body | DateTime | 생성 일시 | -| rules.updatedYmdt | Body | DateTime | 수정 일시 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |
예시

@@ -277,17 +295,11 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example", - "dbSecurityGroupName": "dbSecurityGroupName-example", - "description": "description-example", - "progressStatus": "NONE", - "rules": [ + "dbVersions": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "restorableFromObs": false } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -296,43 +308,66 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 수정하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storageTypes": [] } ```

-#### 응답 +--- -이 API는 응답 본문을 반환하지 않습니다. +## 작업 정보 ---- +### 작업 상태 -### DB 보안 그룹 규칙 삭제하기 +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v4.0/jobs/{jobId} ``` #### 요청 @@ -341,14 +376,19 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleIds | Query | String | O | | +| jobId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -360,7 +400,15 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ + { + "resourceId": "resourceId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -369,51 +417,27 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 생성하기 +## DB 인스턴스 그룹 + +### DB 인스턴스 그룹 목록 보기 ```http -POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v4.0/db-instance-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -425,7 +449,11 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "dbInstanceGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -434,92 +462,32 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 수정하기 +### DB 인스턴스 그룹 상세 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` #### 요청 +이 API는 요청 본문을 요구하지 않습니다. + | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
- -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "jobId": "jobId-example" -} -``` - -

-
- ---- - -## DB 엔진 - -### DB 엔진 목록 보기 - -```http -GET /v4.0/db-versions -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. +| dbInstanceGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -531,11 +499,15 @@ GET /v4.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ { - "restorableFromObs": false + "dbInstanceStatus": "BEFORE_CREATE" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3231,12 +3203,22 @@ PUT /v4.0/db-instances/{dbInstanceId}/storage-info --- -## DB 인스턴스 그룹 +## 백업 -### DB 인스턴스 그룹 목록 보기 +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | + +### 백업 목록 조회 ```http -GET /v4.0/db-instance-groups +GET /v4.0/backups ``` #### 요청 @@ -3247,11 +3229,18 @@ GET /v4.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3263,7 +3252,8 @@ GET /v4.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ + "totalCounts": 1, + "backups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3276,32 +3266,41 @@ GET /v4.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +### 백업 생성하기 ```http -GET /v4.0/db-instance-groups/{dbInstanceGroupId} +POST /v4.0/backups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbInstanceGroupId | URL | UUID | O | | +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | +| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | +| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` | + +

예시 +

+ +```json +{ + "backupName": "backupName", + "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "backupMethodType": "FULL" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3313,15 +3312,7 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", - "replicationType": "STANDALONE", - "dbInstances": [ - { - "dbInstanceStatus": "BEFORE_CREATE" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3330,27 +3321,25 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} --- -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 +### 백업 삭제하기 ```http -GET /v4.0/db-flavors +DELETE /v4.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

@@ -3362,11 +3351,7 @@ GET /v4.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "vcpus": 1 - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3375,26 +3360,42 @@ GET /v4.0/db-flavors --- -## 가용성 영역 - -### 가용성 영역 목록 보기 +### 백업 단건 조회 ```http -GET /v4.0/availability-zones +GET /v4.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| availabilityZones | Body | Array | 가용성 영역 목록 | -| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | -| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | -| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 | +| backup | Body | Object | 백업 상세 정보 | +| backup.backupId | Body | String | 백업의 식별자 | +| backup.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | +| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| backup.dbVersion | Body | Enum | DB 엔진 버전 | +| backup.utilVersion | Body | String | 유틸리티 버전 | +| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | +| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | +| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | +| backup.backupSize | Body | Number | 백업의 크기(Byte) | +| backup.isReplicable | Body | Boolean | 복제 가능 여부 | +| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | +| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | +| backup.createdYmdt | Body | DateTime | 생성 일시 | +| backup.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3406,13 +3407,26 @@ GET /v4.0/availability-zones "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZones": [ - { - "zoneState": { - "available": false - } - } - ] + "backup": { + "backupId": "backupId-example", + "regionCode": "KR1", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupMethodType": "FULL", + "backupFileType": "XBSTREAM", + "backupSize": 1, + "isReplicable": false, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -3421,69 +3435,44 @@ GET /v4.0/availability-zones --- -## 네트워크 - -### 서브넷 목록 보기 +### 백업 내보내기 ```http -GET /v4.0/network/subnets +POST /v4.0/backups/{backupId}/export ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "subnets": [ - { - "availableIpCount": 1 - } - ] + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

---- - -## 데이터 스토리지 - -### 스토리지 타입 목록 보기 - -```http -GET /v4.0/storage-types -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storageTypes | Body | Array | 스토리지 타입 목록 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3495,7 +3484,7 @@ GET /v4.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3504,41 +3493,114 @@ GET /v4.0/storage-types --- -## 모니터링 - -### 통계 정보 조회 +### 백업 복원하기 ```http -GET /v4.0/metric-statistics +POST /v4.0/backups/{backupId}/restore ``` -#### 요청 +#### 공통 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | +| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | -#### 응답 +#### 고가용성 사용 시 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | ---- +#### 스토리지 자동 확장 사용 시 -### Metric 목록 보기 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -```http -GET /v4.0/metrics -``` +

예시 +

-#### 요청 +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -이 API는 요청 본문을 요구하지 않습니다. +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | String | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3550,11 +3612,7 @@ GET /v4.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "unit": "unit-example" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3563,22 +3621,21 @@ GET /v4.0/metrics --- -## 백업 +## DB 보안 그룹 -### 백업 상태 +### DB 보안 그룹 진행 상태 -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | -### 백업 목록 조회 +### DB 보안 그룹 목록 보기 ```http -GET /v4.0/backups +GET /v4.0/db-security-groups ``` #### 요청 @@ -3589,18 +3646,14 @@ GET /v4.0/backups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| backups.createdYmdt | Body | DateTime | 생성 일시 | -| backups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3613,7 +3666,7 @@ GET /v4.0/backups "isSuccessful": true }, "totalCounts": 1, - "backups": [ + "dbSecurityGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3626,30 +3679,40 @@ GET /v4.0/backups --- -### 백업 생성하기 +### DB 보안 그룹 생성하기 ```http -POST /v4.0/backups +POST /v4.0/db-security-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | -| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | -| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` | +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |

예시

```json { - "backupName": "backupName", - "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", - "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", - "backupMethodType": "FULL" + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ + { + "description": "description-example" + } + ] } ``` @@ -3660,7 +3723,7 @@ POST /v4.0/backups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |

예시

@@ -3672,7 +3735,7 @@ POST /v4.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -3681,10 +3744,10 @@ POST /v4.0/backups --- -### 백업 삭제하기 +### DB 보안 그룹 삭제하기 ```http -DELETE /v4.0/backups/{backupId} +DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 @@ -3693,13 +3756,50 @@ DELETE /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 상세 보기 + +```http +GET /v4.0/db-security-groups/{dbSecurityGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| rules | Body | Array | DB 보안 그룹 규칙 목록 | +| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | 포트 객체 | +| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | 최소 포트 범위 | +| rules.port.maxPort | Body | Number | 최대 포트 범위 | +| rules.cidr | Body | String | CIDR | +| rules.createdYmdt | Body | DateTime | 생성 일시 | +| rules.updatedYmdt | Body | DateTime | 수정 일시 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3711,7 +3811,17 @@ DELETE /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3720,10 +3830,43 @@ DELETE /v4.0/backups/{backupId} --- -### 백업 단건 조회 +### DB 보안 그룹 수정하기 ```http -GET /v4.0/backups/{backupId} +PUT /v4.0/db-security-groups/{dbSecurityGroupId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 규칙 삭제하기 + +```http +DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 @@ -3732,30 +3875,14 @@ GET /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | String | 백업의 식별자 | -| backup.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | -| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| backup.dbVersion | Body | Enum | DB 엔진 버전 | -| backup.utilVersion | Body | String | 유틸리티 버전 | -| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | -| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | -| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | -| backup.backupSize | Body | Number | 백업의 크기(Byte) | -| backup.isReplicable | Body | Boolean | 복제 가능 여부 | -| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | -| backup.createdYmdt | Body | DateTime | 생성 일시 | -| backup.updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -3767,26 +3894,7 @@ GET /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "backup": { - "backupId": "backupId-example", - "regionCode": "KR1", - "backupName": "backupName-example", - "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", - "utilVersion": "utilVersion-example", - "backupType": "AUTO", - "backupMethodType": "FULL", - "backupFileType": "XBSTREAM", - "backupSize": 1, - "isReplicable": false, - "binLogFileName": "binLogFileName-example", - "binLogPosition": { - }, - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } + "jobId": "jobId-example" } ``` @@ -3795,33 +3903,40 @@ GET /v4.0/backups/{backupId} --- -### 백업 내보내기 +### DB 보안 그룹 규칙 생성하기 ```http -POST /v4.0/backups/{backupId}/export +POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | -| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "tenantId": "tenantId-example", - "username": "username-example", - "password": "password-example", - "targetContainer": "targetContainer-example", - "objectPath": "objectPath-example" + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3832,7 +3947,7 @@ POST /v4.0/backups/{backupId}/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -3844,7 +3959,7 @@ POST /v4.0/backups/{backupId}/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "jobId": "jobId-example" } ``` @@ -3853,103 +3968,41 @@ POST /v4.0/backups/{backupId}/export --- -### 백업 복원하기 +### DB 보안 그룹 규칙 수정하기 ```http -POST /v4.0/backups/{backupId}/restore -``` - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | -| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | -| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | -| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | - -#### 고가용성 사용 시 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +``` -#### 스토리지 자동 확장 사용 시 +#### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "dbInstanceName": "dbInstanceName", - "description": "description-example", - "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbPort": 1, - "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbSecurityGroupIds": [], - "userGroupIds": [], - "useHighAvailability": false, - "pingInterval": 3, - "useDefaultNotification": false, - "useDeletionProtection": false, - "useSlowQueryAnalysis": true, - "network": { - "subnetId": "550e8400-e29b-41d4-a716-446655440000", - "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" - }, - "storage": { - "storageType": "ENUM_VALUE", - "storageSize": 20, - "storageAutoscale": { - "useStorageAutoscale": false - } + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 }, - "backup": { - "backupPeriod": 0, - "backupRetryCount": 0, - "ftwrlWaitTimeout": 0, - "replicationRegion": "KR1", - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3960,7 +4013,7 @@ POST /v4.0/backups/{backupId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -3972,7 +4025,7 @@ POST /v4.0/backups/{backupId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "jobId": "jobId-example" } ``` @@ -3981,12 +4034,12 @@ POST /v4.0/backups/{backupId}/restore --- -## 사용자 그룹 +## 파라미터 그룹 -### 사용자 그룹 목록 보기 +### 파라미터 그룹 목록 보기 ```http -GET /v4.0/user-groups +GET /v4.0/parameter-groups ``` #### 요청 @@ -3997,12 +4050,16 @@ GET /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시 | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 파라미터 그룹 수 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4015,7 +4072,7 @@ GET /v4.0/user-groups "isSuccessful": true }, "totalCounts": 1, - "userGroups": [ + "parameterGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -4028,28 +4085,28 @@ GET /v4.0/user-groups --- -### 사용자 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v4.0/user-groups +POST /v4.0/parameter-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAll": false + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -4060,7 +4117,7 @@ POST /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -4072,7 +4129,7 @@ POST /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4081,10 +4138,10 @@ POST /v4.0/user-groups --- -### 사용자 그룹 삭제하기 +### 파라미터 그룹 삭제하기 ```http -DELETE /v4.0/user-groups/{userGroupId} +DELETE /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -4093,7 +4150,7 @@ DELETE /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -4101,10 +4158,10 @@ DELETE /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 상세 보기 +### 파라미터 그룹 상세 보기 ```http -GET /v4.0/user-groups/{userGroupId} +GET /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -4113,17 +4170,27 @@ GET /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4137,12 +4204,14 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", - "userGroupName": "userGroupName-example", - "userGroupTypeCode": "ENTIRE", - "members": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "memberId": "memberId-example" + "applyType": "BOTH" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4155,29 +4224,27 @@ GET /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 수정하기 +### 파라미터 그룹 수정하기 ```http -PUT /v4.0/user-groups/{userGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAll": false + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ``` @@ -4190,30 +4257,38 @@ PUT /v4.0/user-groups/{userGroupId} --- -## 알림 그룹 - -### 알림 그룹 목록 보기 +### 파라미터 그룹 복사하기 ```http -GET /v4.0/notification-groups +POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -4225,11 +4300,7 @@ GET /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4238,34 +4309,31 @@ GET /v4.0/notification-groups --- -### 알림 그룹 생성하기 +### 파라미터 수정하기 ```http -POST /v4.0/notification-groups +PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "notificationGroupName": "notificationGroupName", - "notifyEmail": true, - "notifySms": true, - "isEnabled": true, - "dbInstanceIds": [], - "userGroupIds": [] + "modifiedParameters": [ + { + "value": "value-example" + } + ] } ``` @@ -4274,33 +4342,14 @@ POST /v4.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | - -

예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "notificationGroupId": "notificationGroupId-example" -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 재설정하기 ```http -DELETE /v4.0/notification-groups/{notificationGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` #### 요청 @@ -4309,7 +4358,7 @@ DELETE /v4.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -4317,37 +4366,28 @@ DELETE /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 상세 보기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -GET /v4.0/notification-groups/{notificationGroupId} +GET /v4.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | | userGroups | Body | Array | 사용자 그룹 목록 | | userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4359,23 +4399,12 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstances": [ - { - "dbInstanceName": "dbInstanceName-example" - } - ], + "totalCounts": 1, "userGroups": [ { - "userGroupName": "userGroupName-example" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4384,35 +4413,28 @@ GET /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v4.0/notification-groups/{notificationGroupId} +POST /v4.0/user-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstanceIds": [], - "userGroupIds": [] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ``` @@ -4421,42 +4443,74 @@ PUT /v4.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "userGroupId": "userGroupId-example" +} +``` + +

+
--- -## 이벤트 +### 사용자 그룹 삭제하기 -### 이벤트 카테고리 +```http +DELETE /v4.0/user-groups/{userGroupId} +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 구독 가능한 이벤트 코드 목록 보기 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 ```http -GET /v4.0/event-codes +GET /v4.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4468,11 +4522,16 @@ GET /v4.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "eventCategoryType": "ALL" + "memberId": "memberId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4481,61 +4540,47 @@ GET /v4.0/event-codes --- -### 이벤트 목록 조회 +### 사용자 그룹 수정하기 ```http -GET /v4.0/events +PUT /v4.0/user-groups/{userGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메세지 목록 | -| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | -| events.messages.message | Body | String | 이벤트 메세지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "events": [ - { - "eventYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 구독 +## 알림 그룹 -### 이벤트 구독 목록 조회 +### 알림 그룹 목록 보기 ```http -GET /v4.0/event-subscriptions +GET /v4.0/notification-groups ``` #### 요청 @@ -4546,20 +4591,14 @@ GET /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4571,10 +4610,9 @@ GET /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "eventSubscriptions": [ + "notificationGroups": [ { - "createdYmdt": "2023-12-31T15:00:00+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -4585,43 +4623,33 @@ GET /v4.0/event-subscriptions --- -### 이벤트 구독 생성하기 +### 알림 그룹 생성하기 ```http -POST /v4.0/event-subscriptions +POST /v4.0/notification-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | - -

예시 -

- -```json -{ - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | + +

예시 +

+ +```json +{ + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], "userGroupIds": [] } ``` @@ -4633,7 +4661,7 @@ POST /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -4645,7 +4673,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -4654,10 +4682,10 @@ POST /v4.0/event-subscriptions --- -### 이벤트 구독 삭제하기 +### 알림 그룹 삭제하기 ```http -DELETE /v4.0/event-subscriptions/{eventSubscriptionId} +DELETE /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -4666,58 +4694,7 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- - -### 이벤트 구독 수정하기 - -```http -PUT /v4.0/event-subscriptions/{eventSubscriptionId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | - -

예시 -

- -```json -{ - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], - "userGroupIds": [] -} -``` - -

-
+| notificationGroupId | URL | UUID | O | | #### 응답 @@ -4725,29 +4702,10 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### 알림 그룹 상세 보기 ```http -GET /v4.0/jobs/{jobId} +GET /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -4756,17 +4714,23 @@ GET /v4.0/jobs/{jobId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| jobId | URL | UUID | O | | +| notificationGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4780,11 +4744,19 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", - "jobStatus": "DELETED", - "resourceRelations": [ + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ { - "resourceId": "resourceId-example" + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4797,90 +4769,82 @@ GET /v4.0/jobs/{jobId} --- -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 +### 알림 그룹 수정하기 ```http -GET /v4.0/parameter-groups +PUT /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 파라미터 그룹 수 | -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "parameterGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 파라미터 그룹 생성하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v4.0/parameter-groups +GET /v4.0/metric-statistics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +이 API는 요청 본문을 요구하지 않습니다. -
예시 -

+#### 응답 -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example", - "dbVersion": "ENUM_VALUE" -} +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### Metric 목록 보기 + +```http +GET /v4.0/metrics ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -4892,7 +4856,11 @@ POST /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "metrics": [ + { + "unit": "unit-example" + } + ] } ``` @@ -4901,61 +4869,38 @@ POST /v4.0/parameter-groups --- -### 파라미터 그룹 삭제하기 - -```http -DELETE /v4.0/parameter-groups/{parameterGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +## 이벤트 -#### 응답 +### 이벤트 카테고리 -이 API는 응답 본문을 반환하지 않습니다. +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. ---- +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -### 파라미터 그룹 상세 보기 +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/event-codes ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | -| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |

예시

@@ -4967,18 +4912,11 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", - "parameterGroupName": "parameterGroupName-example", - "description": "description-example", - "dbVersion": "ENUM_VALUE", - "parameterGroupStatus": "STABLE", - "parameters": [ + "eventCodes": [ { - "applyType": "BOTH" + "eventCategoryType": "ALL" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4987,71 +4925,85 @@ GET /v4.0/parameter-groups/{parameterGroupId} --- -### 파라미터 그룹 수정하기 +### 이벤트 목록 조회 ```http -PUT /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/events ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

```json { - "parameterGroupName": "parameterGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "events": [ + { + "eventYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### 파라미터 그룹 복사하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v4.0/parameter-groups/{parameterGroupId}/copy +GET /v4.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -5063,7 +5015,12 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -5072,31 +5029,44 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy --- -### 파라미터 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/parameters +POST /v4.0/event-subscriptions ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "value": "value-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ``` @@ -5105,14 +5075,33 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "eventSubscriptionId": "eventSubscriptionId-example" +} +``` + +

+
--- -### 파라미터 그룹 재설정하기 +### 이벤트 구독 삭제하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/reset +DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 @@ -5121,7 +5110,7 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +| eventSubscriptionId | URL | UUID | O | | #### 응답 @@ -5129,55 +5118,63 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset --- -## 프로젝트 정보 - -### 프로젝트 멤버 목록 보기 +### 이벤트 구독 수정하기 ```http -GET /v4.0/project/members +PUT /v4.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "phoneNumber": "phoneNumber-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 리전 목록 보기 +## 가용성 영역 + +### 가용성 영역 목록 보기 ```http -GET /v4.0/project/regions +GET /v4.0/availability-zones ``` #### 요청 @@ -5188,9 +5185,10 @@ GET /v4.0/project/regions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| availabilityZones | Body | Array | 가용성 영역 목록 | +| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | +| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | +| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 |
예시

@@ -5202,9 +5200,11 @@ GET /v4.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ + "availabilityZones": [ { - "isEnabled": false + "zoneState": { + "available": false + } } ] } diff --git a/ko/api-guide-v4.0-ngoic.md b/ko/api-guide-v4.0-ngoic.md index fe0bddcd..19050783 100644 --- a/ko/api-guide-v4.0-ngoic.md +++ b/ko/api-guide-v4.0-ngoic.md @@ -87,21 +87,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 프로젝트 정보 -### DB 보안 그룹 목록 보기 +### 프로젝트 멤버 목록 보기 ```http -GET /v4.0/db-security-groups +GET /v4.0/project/members ``` #### 요청 @@ -112,14 +103,11 @@ GET /v4.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |

예시

@@ -131,10 +119,9 @@ GET /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "dbSecurityGroups": [ + "members": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -145,38 +132,37 @@ GET /v4.0/db-security-groups --- -### DB 보안 그룹 생성하기 +### 리전 목록 보기 ```http -POST /v4.0/db-security-groups +GET /v4.0/project/regions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| rules.cidr | Body | String | O | CIDR | -| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example", - "rules": [ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "regions": [ { - "description": "description-example" + "isEnabled": false } ] } @@ -185,11 +171,29 @@ POST /v4.0/db-security-groups

+--- + +## DB 인스턴스 사양 + +### DB 인스턴스 사양 목록 보기 + +```http +GET /v4.0/db-flavors +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -201,7 +205,11 @@ POST /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ``` @@ -210,62 +218,72 @@ POST /v4.0/db-security-groups --- -### DB 보안 그룹 삭제하기 +## 네트워크 + +### 서브넷 목록 보기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/network/subnets ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] +} +``` + +

+
--- -### DB 보안 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | CIDR | -| rules.createdYmdt | Body | DateTime | 생성 일시 | -| rules.updatedYmdt | Body | DateTime | 수정 일시 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |
예시

@@ -277,17 +295,11 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example", - "dbSecurityGroupName": "dbSecurityGroupName-example", - "description": "description-example", - "progressStatus": "NONE", - "rules": [ + "dbVersions": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "restorableFromObs": false } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -296,43 +308,66 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 수정하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storageTypes": [] } ```

-#### 응답 +--- -이 API는 응답 본문을 반환하지 않습니다. +## 작업 정보 ---- +### 작업 상태 -### DB 보안 그룹 규칙 삭제하기 +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v4.0/jobs/{jobId} ``` #### 요청 @@ -341,14 +376,19 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleIds | Query | String | O | | +| jobId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -360,7 +400,15 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ + { + "resourceId": "resourceId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -369,51 +417,27 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 생성하기 +## DB 인스턴스 그룹 + +### DB 인스턴스 그룹 목록 보기 ```http -POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v4.0/db-instance-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -425,7 +449,11 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "dbInstanceGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -434,92 +462,32 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 수정하기 +### DB 인스턴스 그룹 상세 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` #### 요청 +이 API는 요청 본문을 요구하지 않습니다. + | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
- -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "jobId": "jobId-example" -} -``` - -

-
- ---- - -## DB 엔진 - -### DB 엔진 목록 보기 - -```http -GET /v4.0/db-versions -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. +| dbInstanceGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -531,11 +499,15 @@ GET /v4.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ { - "restorableFromObs": false + "dbInstanceStatus": "BEFORE_CREATE" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3231,12 +3203,22 @@ PUT /v4.0/db-instances/{dbInstanceId}/storage-info --- -## DB 인스턴스 그룹 +## 백업 -### DB 인스턴스 그룹 목록 보기 +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | + +### 백업 목록 조회 ```http -GET /v4.0/db-instance-groups +GET /v4.0/backups ``` #### 요청 @@ -3247,11 +3229,18 @@ GET /v4.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3263,7 +3252,8 @@ GET /v4.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ + "totalCounts": 1, + "backups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3276,32 +3266,41 @@ GET /v4.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +### 백업 생성하기 ```http -GET /v4.0/db-instance-groups/{dbInstanceGroupId} +POST /v4.0/backups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbInstanceGroupId | URL | UUID | O | | +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | +| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | +| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` | + +

예시 +

+ +```json +{ + "backupName": "backupName", + "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "backupMethodType": "FULL" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3313,15 +3312,7 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", - "replicationType": "STANDALONE", - "dbInstances": [ - { - "dbInstanceStatus": "BEFORE_CREATE" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3330,27 +3321,25 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} --- -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 +### 백업 삭제하기 ```http -GET /v4.0/db-flavors +DELETE /v4.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

@@ -3362,11 +3351,7 @@ GET /v4.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "vcpus": 1 - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3375,26 +3360,42 @@ GET /v4.0/db-flavors --- -## 가용성 영역 - -### 가용성 영역 목록 보기 +### 백업 단건 조회 ```http -GET /v4.0/availability-zones +GET /v4.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| availabilityZones | Body | Array | 가용성 영역 목록 | -| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | -| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | -| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 | +| backup | Body | Object | 백업 상세 정보 | +| backup.backupId | Body | String | 백업의 식별자 | +| backup.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| backup.dbVersion | Body | Enum | DB 엔진 버전 | +| backup.utilVersion | Body | String | 유틸리티 버전 | +| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | +| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | +| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | +| backup.backupSize | Body | Number | 백업의 크기(Byte) | +| backup.isReplicable | Body | Boolean | 복제 가능 여부 | +| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | +| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | +| backup.createdYmdt | Body | DateTime | 생성 일시 | +| backup.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3406,13 +3407,26 @@ GET /v4.0/availability-zones "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZones": [ - { - "zoneState": { - "available": false - } - } - ] + "backup": { + "backupId": "backupId-example", + "regionCode": "KR4", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupMethodType": "FULL", + "backupFileType": "XBSTREAM", + "backupSize": 1, + "isReplicable": false, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -3421,69 +3435,44 @@ GET /v4.0/availability-zones --- -## 네트워크 - -### 서브넷 목록 보기 +### 백업 내보내기 ```http -GET /v4.0/network/subnets +POST /v4.0/backups/{backupId}/export ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "subnets": [ - { - "availableIpCount": 1 - } - ] + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

---- - -## 데이터 스토리지 - -### 스토리지 타입 목록 보기 - -```http -GET /v4.0/storage-types -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storageTypes | Body | Array | 스토리지 타입 목록 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3495,7 +3484,7 @@ GET /v4.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3504,41 +3493,114 @@ GET /v4.0/storage-types --- -## 모니터링 - -### 통계 정보 조회 +### 백업 복원하기 ```http -GET /v4.0/metric-statistics +POST /v4.0/backups/{backupId}/restore ``` -#### 요청 +#### 공통 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | +| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | -#### 응답 +#### 고가용성 사용 시 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | ---- +#### 스토리지 자동 확장 사용 시 -### Metric 목록 보기 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -```http -GET /v4.0/metrics -``` +

예시 +

-#### 요청 +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -이 API는 요청 본문을 요구하지 않습니다. +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | String | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3550,11 +3612,7 @@ GET /v4.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "unit": "unit-example" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3563,22 +3621,21 @@ GET /v4.0/metrics --- -## 백업 +## DB 보안 그룹 -### 백업 상태 +### DB 보안 그룹 진행 상태 -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | -### 백업 목록 조회 +### DB 보안 그룹 목록 보기 ```http -GET /v4.0/backups +GET /v4.0/db-security-groups ``` #### 요청 @@ -3589,18 +3646,14 @@ GET /v4.0/backups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| backups.createdYmdt | Body | DateTime | 생성 일시 | -| backups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3613,7 +3666,7 @@ GET /v4.0/backups "isSuccessful": true }, "totalCounts": 1, - "backups": [ + "dbSecurityGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3626,30 +3679,40 @@ GET /v4.0/backups --- -### 백업 생성하기 +### DB 보안 그룹 생성하기 ```http -POST /v4.0/backups +POST /v4.0/db-security-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | -| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | -| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` | +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |

예시

```json { - "backupName": "backupName", - "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", - "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", - "backupMethodType": "FULL" + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ + { + "description": "description-example" + } + ] } ``` @@ -3660,7 +3723,7 @@ POST /v4.0/backups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |

예시

@@ -3672,7 +3735,7 @@ POST /v4.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -3681,10 +3744,10 @@ POST /v4.0/backups --- -### 백업 삭제하기 +### DB 보안 그룹 삭제하기 ```http -DELETE /v4.0/backups/{backupId} +DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 @@ -3693,13 +3756,50 @@ DELETE /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 상세 보기 + +```http +GET /v4.0/db-security-groups/{dbSecurityGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| rules | Body | Array | DB 보안 그룹 규칙 목록 | +| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | 포트 객체 | +| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | 최소 포트 범위 | +| rules.port.maxPort | Body | Number | 최대 포트 범위 | +| rules.cidr | Body | String | CIDR | +| rules.createdYmdt | Body | DateTime | 생성 일시 | +| rules.updatedYmdt | Body | DateTime | 수정 일시 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3711,7 +3811,17 @@ DELETE /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3720,10 +3830,43 @@ DELETE /v4.0/backups/{backupId} --- -### 백업 단건 조회 +### DB 보안 그룹 수정하기 ```http -GET /v4.0/backups/{backupId} +PUT /v4.0/db-security-groups/{dbSecurityGroupId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 규칙 삭제하기 + +```http +DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 @@ -3732,30 +3875,14 @@ GET /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | String | 백업의 식별자 | -| backup.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | -| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| backup.dbVersion | Body | Enum | DB 엔진 버전 | -| backup.utilVersion | Body | String | 유틸리티 버전 | -| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | -| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | -| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | -| backup.backupSize | Body | Number | 백업의 크기(Byte) | -| backup.isReplicable | Body | Boolean | 복제 가능 여부 | -| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | -| backup.createdYmdt | Body | DateTime | 생성 일시 | -| backup.updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -3767,26 +3894,7 @@ GET /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "backup": { - "backupId": "backupId-example", - "regionCode": "KR4", - "backupName": "backupName-example", - "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", - "utilVersion": "utilVersion-example", - "backupType": "AUTO", - "backupMethodType": "FULL", - "backupFileType": "XBSTREAM", - "backupSize": 1, - "isReplicable": false, - "binLogFileName": "binLogFileName-example", - "binLogPosition": { - }, - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } + "jobId": "jobId-example" } ``` @@ -3795,33 +3903,40 @@ GET /v4.0/backups/{backupId} --- -### 백업 내보내기 +### DB 보안 그룹 규칙 생성하기 ```http -POST /v4.0/backups/{backupId}/export +POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | -| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "tenantId": "tenantId-example", - "username": "username-example", - "password": "password-example", - "targetContainer": "targetContainer-example", - "objectPath": "objectPath-example" + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3832,7 +3947,7 @@ POST /v4.0/backups/{backupId}/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -3844,7 +3959,7 @@ POST /v4.0/backups/{backupId}/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "jobId": "jobId-example" } ``` @@ -3853,103 +3968,41 @@ POST /v4.0/backups/{backupId}/export --- -### 백업 복원하기 +### DB 보안 그룹 규칙 수정하기 ```http -POST /v4.0/backups/{backupId}/restore -``` - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | -| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | -| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | -| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | - -#### 고가용성 사용 시 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +``` -#### 스토리지 자동 확장 사용 시 +#### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "dbInstanceName": "dbInstanceName", - "description": "description-example", - "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbPort": 1, - "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbSecurityGroupIds": [], - "userGroupIds": [], - "useHighAvailability": false, - "pingInterval": 3, - "useDefaultNotification": false, - "useDeletionProtection": false, - "useSlowQueryAnalysis": true, - "network": { - "subnetId": "550e8400-e29b-41d4-a716-446655440000", - "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" - }, - "storage": { - "storageType": "ENUM_VALUE", - "storageSize": 20, - "storageAutoscale": { - "useStorageAutoscale": false - } + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 }, - "backup": { - "backupPeriod": 0, - "backupRetryCount": 0, - "ftwrlWaitTimeout": 0, - "replicationRegion": "KR4", - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3960,7 +4013,7 @@ POST /v4.0/backups/{backupId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -3972,7 +4025,7 @@ POST /v4.0/backups/{backupId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "jobId": "jobId-example" } ``` @@ -3981,12 +4034,12 @@ POST /v4.0/backups/{backupId}/restore --- -## 사용자 그룹 +## 파라미터 그룹 -### 사용자 그룹 목록 보기 +### 파라미터 그룹 목록 보기 ```http -GET /v4.0/user-groups +GET /v4.0/parameter-groups ``` #### 요청 @@ -3997,12 +4050,16 @@ GET /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시 | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 파라미터 그룹 수 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4015,7 +4072,7 @@ GET /v4.0/user-groups "isSuccessful": true }, "totalCounts": 1, - "userGroups": [ + "parameterGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -4028,28 +4085,28 @@ GET /v4.0/user-groups --- -### 사용자 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v4.0/user-groups +POST /v4.0/parameter-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAll": false + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -4060,7 +4117,7 @@ POST /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -4072,7 +4129,7 @@ POST /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4081,10 +4138,10 @@ POST /v4.0/user-groups --- -### 사용자 그룹 삭제하기 +### 파라미터 그룹 삭제하기 ```http -DELETE /v4.0/user-groups/{userGroupId} +DELETE /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -4093,7 +4150,7 @@ DELETE /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -4101,10 +4158,10 @@ DELETE /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 상세 보기 +### 파라미터 그룹 상세 보기 ```http -GET /v4.0/user-groups/{userGroupId} +GET /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -4113,17 +4170,27 @@ GET /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4137,12 +4204,14 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", - "userGroupName": "userGroupName-example", - "userGroupTypeCode": "ENTIRE", - "members": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "memberId": "memberId-example" + "applyType": "BOTH" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4155,29 +4224,27 @@ GET /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 수정하기 +### 파라미터 그룹 수정하기 ```http -PUT /v4.0/user-groups/{userGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAll": false + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ``` @@ -4190,30 +4257,38 @@ PUT /v4.0/user-groups/{userGroupId} --- -## 알림 그룹 - -### 알림 그룹 목록 보기 +### 파라미터 그룹 복사하기 ```http -GET /v4.0/notification-groups +POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -4225,11 +4300,7 @@ GET /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4238,34 +4309,31 @@ GET /v4.0/notification-groups --- -### 알림 그룹 생성하기 +### 파라미터 수정하기 ```http -POST /v4.0/notification-groups +PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "notificationGroupName": "notificationGroupName", - "notifyEmail": true, - "notifySms": true, - "isEnabled": true, - "dbInstanceIds": [], - "userGroupIds": [] + "modifiedParameters": [ + { + "value": "value-example" + } + ] } ``` @@ -4274,33 +4342,14 @@ POST /v4.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | - -

예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "notificationGroupId": "notificationGroupId-example" -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 재설정하기 ```http -DELETE /v4.0/notification-groups/{notificationGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` #### 요청 @@ -4309,7 +4358,7 @@ DELETE /v4.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -4317,37 +4366,28 @@ DELETE /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 상세 보기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -GET /v4.0/notification-groups/{notificationGroupId} +GET /v4.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | | userGroups | Body | Array | 사용자 그룹 목록 | | userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4359,23 +4399,12 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstances": [ - { - "dbInstanceName": "dbInstanceName-example" - } - ], + "totalCounts": 1, "userGroups": [ { - "userGroupName": "userGroupName-example" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4384,35 +4413,28 @@ GET /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v4.0/notification-groups/{notificationGroupId} +POST /v4.0/user-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstanceIds": [], - "userGroupIds": [] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ``` @@ -4421,42 +4443,74 @@ PUT /v4.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "userGroupId": "userGroupId-example" +} +``` + +

+
--- -## 이벤트 +### 사용자 그룹 삭제하기 -### 이벤트 카테고리 +```http +DELETE /v4.0/user-groups/{userGroupId} +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 구독 가능한 이벤트 코드 목록 보기 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 ```http -GET /v4.0/event-codes +GET /v4.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4468,11 +4522,16 @@ GET /v4.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "eventCategoryType": "ALL" + "memberId": "memberId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4481,61 +4540,47 @@ GET /v4.0/event-codes --- -### 이벤트 목록 조회 +### 사용자 그룹 수정하기 ```http -GET /v4.0/events +PUT /v4.0/user-groups/{userGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메세지 목록 | -| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | -| events.messages.message | Body | String | 이벤트 메세지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "events": [ - { - "eventYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 구독 +## 알림 그룹 -### 이벤트 구독 목록 조회 +### 알림 그룹 목록 보기 ```http -GET /v4.0/event-subscriptions +GET /v4.0/notification-groups ``` #### 요청 @@ -4546,20 +4591,14 @@ GET /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4571,10 +4610,9 @@ GET /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "eventSubscriptions": [ + "notificationGroups": [ { - "createdYmdt": "2023-12-31T15:00:00+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -4585,43 +4623,33 @@ GET /v4.0/event-subscriptions --- -### 이벤트 구독 생성하기 +### 알림 그룹 생성하기 ```http -POST /v4.0/event-subscriptions +POST /v4.0/notification-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | - -

예시 -

- -```json -{ - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | + +

예시 +

+ +```json +{ + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], "userGroupIds": [] } ``` @@ -4633,7 +4661,7 @@ POST /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -4645,7 +4673,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -4654,10 +4682,10 @@ POST /v4.0/event-subscriptions --- -### 이벤트 구독 삭제하기 +### 알림 그룹 삭제하기 ```http -DELETE /v4.0/event-subscriptions/{eventSubscriptionId} +DELETE /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -4666,58 +4694,7 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- - -### 이벤트 구독 수정하기 - -```http -PUT /v4.0/event-subscriptions/{eventSubscriptionId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | - -

예시 -

- -```json -{ - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], - "userGroupIds": [] -} -``` - -

-
+| notificationGroupId | URL | UUID | O | | #### 응답 @@ -4725,29 +4702,10 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### 알림 그룹 상세 보기 ```http -GET /v4.0/jobs/{jobId} +GET /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -4756,17 +4714,23 @@ GET /v4.0/jobs/{jobId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| jobId | URL | UUID | O | | +| notificationGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4780,11 +4744,19 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", - "jobStatus": "DELETED", - "resourceRelations": [ + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ { - "resourceId": "resourceId-example" + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4797,90 +4769,82 @@ GET /v4.0/jobs/{jobId} --- -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 +### 알림 그룹 수정하기 ```http -GET /v4.0/parameter-groups +PUT /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 파라미터 그룹 수 | -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "parameterGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 파라미터 그룹 생성하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v4.0/parameter-groups +GET /v4.0/metric-statistics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +이 API는 요청 본문을 요구하지 않습니다. -
예시 -

+#### 응답 -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example", - "dbVersion": "ENUM_VALUE" -} +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### Metric 목록 보기 + +```http +GET /v4.0/metrics ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -4892,7 +4856,11 @@ POST /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "metrics": [ + { + "unit": "unit-example" + } + ] } ``` @@ -4901,61 +4869,38 @@ POST /v4.0/parameter-groups --- -### 파라미터 그룹 삭제하기 - -```http -DELETE /v4.0/parameter-groups/{parameterGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +## 이벤트 -#### 응답 +### 이벤트 카테고리 -이 API는 응답 본문을 반환하지 않습니다. +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. ---- +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -### 파라미터 그룹 상세 보기 +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/event-codes ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | -| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |

예시

@@ -4967,18 +4912,11 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", - "parameterGroupName": "parameterGroupName-example", - "description": "description-example", - "dbVersion": "ENUM_VALUE", - "parameterGroupStatus": "STABLE", - "parameters": [ + "eventCodes": [ { - "applyType": "BOTH" + "eventCategoryType": "ALL" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4987,71 +4925,85 @@ GET /v4.0/parameter-groups/{parameterGroupId} --- -### 파라미터 그룹 수정하기 +### 이벤트 목록 조회 ```http -PUT /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/events ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

```json { - "parameterGroupName": "parameterGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "events": [ + { + "eventYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### 파라미터 그룹 복사하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v4.0/parameter-groups/{parameterGroupId}/copy +GET /v4.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -5063,7 +5015,12 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -5072,31 +5029,44 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy --- -### 파라미터 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/parameters +POST /v4.0/event-subscriptions ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "value": "value-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ``` @@ -5105,14 +5075,33 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "eventSubscriptionId": "eventSubscriptionId-example" +} +``` + +

+
--- -### 파라미터 그룹 재설정하기 +### 이벤트 구독 삭제하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/reset +DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 @@ -5121,7 +5110,7 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +| eventSubscriptionId | URL | UUID | O | | #### 응답 @@ -5129,55 +5118,63 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset --- -## 프로젝트 정보 - -### 프로젝트 멤버 목록 보기 +### 이벤트 구독 수정하기 ```http -GET /v4.0/project/members +PUT /v4.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "phoneNumber": "phoneNumber-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 리전 목록 보기 +## 가용성 영역 + +### 가용성 영역 목록 보기 ```http -GET /v4.0/project/regions +GET /v4.0/availability-zones ``` #### 요청 @@ -5188,9 +5185,10 @@ GET /v4.0/project/regions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| availabilityZones | Body | Array | 가용성 영역 목록 | +| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | +| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | +| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 |
예시

@@ -5202,9 +5200,11 @@ GET /v4.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ + "availabilityZones": [ { - "isEnabled": false + "zoneState": { + "available": false + } } ] } diff --git a/ko/api-guide-v4.0-ngovc.md b/ko/api-guide-v4.0-ngovc.md index b6630d79..c3a534ca 100644 --- a/ko/api-guide-v4.0-ngovc.md +++ b/ko/api-guide-v4.0-ngovc.md @@ -87,21 +87,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 프로젝트 정보 -### DB 보안 그룹 목록 보기 +### 프로젝트 멤버 목록 보기 ```http -GET /v4.0/db-security-groups +GET /v4.0/project/members ``` #### 요청 @@ -112,14 +103,11 @@ GET /v4.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |

예시

@@ -131,10 +119,9 @@ GET /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "dbSecurityGroups": [ + "members": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -145,38 +132,37 @@ GET /v4.0/db-security-groups --- -### DB 보안 그룹 생성하기 +### 리전 목록 보기 ```http -POST /v4.0/db-security-groups +GET /v4.0/project/regions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| rules.cidr | Body | String | O | CIDR | -| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example", - "rules": [ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "regions": [ { - "description": "description-example" + "isEnabled": false } ] } @@ -185,11 +171,29 @@ POST /v4.0/db-security-groups

+--- + +## DB 인스턴스 사양 + +### DB 인스턴스 사양 목록 보기 + +```http +GET /v4.0/db-flavors +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -201,7 +205,11 @@ POST /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ``` @@ -210,62 +218,72 @@ POST /v4.0/db-security-groups --- -### DB 보안 그룹 삭제하기 +## 네트워크 + +### 서브넷 목록 보기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/network/subnets ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] +} +``` + +

+
--- -### DB 보안 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | CIDR | -| rules.createdYmdt | Body | DateTime | 생성 일시 | -| rules.updatedYmdt | Body | DateTime | 수정 일시 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |
예시

@@ -277,17 +295,11 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example", - "dbSecurityGroupName": "dbSecurityGroupName-example", - "description": "description-example", - "progressStatus": "NONE", - "rules": [ + "dbVersions": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "restorableFromObs": false } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -296,43 +308,66 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 수정하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storageTypes": [] } ```

-#### 응답 +--- -이 API는 응답 본문을 반환하지 않습니다. +## 작업 정보 ---- +### 작업 상태 -### DB 보안 그룹 규칙 삭제하기 +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v4.0/jobs/{jobId} ``` #### 요청 @@ -341,14 +376,19 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleIds | Query | String | O | | +| jobId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -360,7 +400,15 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ + { + "resourceId": "resourceId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -369,51 +417,27 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 생성하기 +## DB 인스턴스 그룹 + +### DB 인스턴스 그룹 목록 보기 ```http -POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v4.0/db-instance-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -425,7 +449,11 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "dbInstanceGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -434,92 +462,32 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 수정하기 +### DB 인스턴스 그룹 상세 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` #### 요청 +이 API는 요청 본문을 요구하지 않습니다. + | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
- -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "jobId": "jobId-example" -} -``` - -

-
- ---- - -## DB 엔진 - -### DB 엔진 목록 보기 - -```http -GET /v4.0/db-versions -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. +| dbInstanceGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -531,11 +499,15 @@ GET /v4.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ { - "restorableFromObs": false + "dbInstanceStatus": "BEFORE_CREATE" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3231,12 +3203,22 @@ PUT /v4.0/db-instances/{dbInstanceId}/storage-info --- -## DB 인스턴스 그룹 +## 백업 -### DB 인스턴스 그룹 목록 보기 +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | + +### 백업 목록 조회 ```http -GET /v4.0/db-instance-groups +GET /v4.0/backups ``` #### 요청 @@ -3247,11 +3229,18 @@ GET /v4.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3263,7 +3252,8 @@ GET /v4.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ + "totalCounts": 1, + "backups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3276,32 +3266,41 @@ GET /v4.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +### 백업 생성하기 ```http -GET /v4.0/db-instance-groups/{dbInstanceGroupId} +POST /v4.0/backups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbInstanceGroupId | URL | UUID | O | | +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | +| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | +| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` | + +

예시 +

+ +```json +{ + "backupName": "backupName", + "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "backupMethodType": "FULL" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3313,15 +3312,7 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", - "replicationType": "STANDALONE", - "dbInstances": [ - { - "dbInstanceStatus": "BEFORE_CREATE" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3330,27 +3321,25 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} --- -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 +### 백업 삭제하기 ```http -GET /v4.0/db-flavors +DELETE /v4.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

@@ -3362,11 +3351,7 @@ GET /v4.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "vcpus": 1 - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3375,26 +3360,42 @@ GET /v4.0/db-flavors --- -## 가용성 영역 - -### 가용성 영역 목록 보기 +### 백업 단건 조회 ```http -GET /v4.0/availability-zones +GET /v4.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| availabilityZones | Body | Array | 가용성 영역 목록 | -| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | -| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | -| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 | +| backup | Body | Object | 백업 상세 정보 | +| backup.backupId | Body | String | 백업의 식별자 | +| backup.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| backup.dbVersion | Body | Enum | DB 엔진 버전 | +| backup.utilVersion | Body | String | 유틸리티 버전 | +| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | +| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | +| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | +| backup.backupSize | Body | Number | 백업의 크기(Byte) | +| backup.isReplicable | Body | Boolean | 복제 가능 여부 | +| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | +| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | +| backup.createdYmdt | Body | DateTime | 생성 일시 | +| backup.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3406,13 +3407,26 @@ GET /v4.0/availability-zones "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZones": [ - { - "zoneState": { - "available": false - } - } - ] + "backup": { + "backupId": "backupId-example", + "regionCode": "KR4", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupMethodType": "FULL", + "backupFileType": "XBSTREAM", + "backupSize": 1, + "isReplicable": false, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -3421,69 +3435,44 @@ GET /v4.0/availability-zones --- -## 네트워크 - -### 서브넷 목록 보기 +### 백업 내보내기 ```http -GET /v4.0/network/subnets +POST /v4.0/backups/{backupId}/export ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "subnets": [ - { - "availableIpCount": 1 - } - ] + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

---- - -## 데이터 스토리지 - -### 스토리지 타입 목록 보기 - -```http -GET /v4.0/storage-types -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storageTypes | Body | Array | 스토리지 타입 목록 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3495,7 +3484,7 @@ GET /v4.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3504,41 +3493,114 @@ GET /v4.0/storage-types --- -## 모니터링 - -### 통계 정보 조회 +### 백업 복원하기 ```http -GET /v4.0/metric-statistics +POST /v4.0/backups/{backupId}/restore ``` -#### 요청 +#### 공통 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | +| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | -#### 응답 +#### 고가용성 사용 시 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | ---- +#### 스토리지 자동 확장 사용 시 -### Metric 목록 보기 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -```http -GET /v4.0/metrics -``` +

예시 +

-#### 요청 +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -이 API는 요청 본문을 요구하지 않습니다. +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | String | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3550,11 +3612,7 @@ GET /v4.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "unit": "unit-example" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3563,22 +3621,21 @@ GET /v4.0/metrics --- -## 백업 +## DB 보안 그룹 -### 백업 상태 +### DB 보안 그룹 진행 상태 -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | -### 백업 목록 조회 +### DB 보안 그룹 목록 보기 ```http -GET /v4.0/backups +GET /v4.0/db-security-groups ``` #### 요청 @@ -3589,18 +3646,14 @@ GET /v4.0/backups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| backups.createdYmdt | Body | DateTime | 생성 일시 | -| backups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3613,7 +3666,7 @@ GET /v4.0/backups "isSuccessful": true }, "totalCounts": 1, - "backups": [ + "dbSecurityGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3626,30 +3679,40 @@ GET /v4.0/backups --- -### 백업 생성하기 +### DB 보안 그룹 생성하기 ```http -POST /v4.0/backups +POST /v4.0/db-security-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | -| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | -| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` | +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |

예시

```json { - "backupName": "backupName", - "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", - "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", - "backupMethodType": "FULL" + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ + { + "description": "description-example" + } + ] } ``` @@ -3660,7 +3723,7 @@ POST /v4.0/backups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |

예시

@@ -3672,7 +3735,7 @@ POST /v4.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -3681,10 +3744,10 @@ POST /v4.0/backups --- -### 백업 삭제하기 +### DB 보안 그룹 삭제하기 ```http -DELETE /v4.0/backups/{backupId} +DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 @@ -3693,13 +3756,50 @@ DELETE /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 상세 보기 + +```http +GET /v4.0/db-security-groups/{dbSecurityGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| rules | Body | Array | DB 보안 그룹 규칙 목록 | +| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | 포트 객체 | +| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | 최소 포트 범위 | +| rules.port.maxPort | Body | Number | 최대 포트 범위 | +| rules.cidr | Body | String | CIDR | +| rules.createdYmdt | Body | DateTime | 생성 일시 | +| rules.updatedYmdt | Body | DateTime | 수정 일시 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3711,7 +3811,17 @@ DELETE /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3720,10 +3830,43 @@ DELETE /v4.0/backups/{backupId} --- -### 백업 단건 조회 +### DB 보안 그룹 수정하기 ```http -GET /v4.0/backups/{backupId} +PUT /v4.0/db-security-groups/{dbSecurityGroupId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 규칙 삭제하기 + +```http +DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 @@ -3732,30 +3875,14 @@ GET /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | String | 백업의 식별자 | -| backup.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | -| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| backup.dbVersion | Body | Enum | DB 엔진 버전 | -| backup.utilVersion | Body | String | 유틸리티 버전 | -| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | -| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | -| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | -| backup.backupSize | Body | Number | 백업의 크기(Byte) | -| backup.isReplicable | Body | Boolean | 복제 가능 여부 | -| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | -| backup.createdYmdt | Body | DateTime | 생성 일시 | -| backup.updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -3767,26 +3894,7 @@ GET /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "backup": { - "backupId": "backupId-example", - "regionCode": "KR4", - "backupName": "backupName-example", - "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", - "utilVersion": "utilVersion-example", - "backupType": "AUTO", - "backupMethodType": "FULL", - "backupFileType": "XBSTREAM", - "backupSize": 1, - "isReplicable": false, - "binLogFileName": "binLogFileName-example", - "binLogPosition": { - }, - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } + "jobId": "jobId-example" } ``` @@ -3795,33 +3903,40 @@ GET /v4.0/backups/{backupId} --- -### 백업 내보내기 +### DB 보안 그룹 규칙 생성하기 ```http -POST /v4.0/backups/{backupId}/export +POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | -| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "tenantId": "tenantId-example", - "username": "username-example", - "password": "password-example", - "targetContainer": "targetContainer-example", - "objectPath": "objectPath-example" + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3832,7 +3947,7 @@ POST /v4.0/backups/{backupId}/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -3844,7 +3959,7 @@ POST /v4.0/backups/{backupId}/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "jobId": "jobId-example" } ``` @@ -3853,103 +3968,41 @@ POST /v4.0/backups/{backupId}/export --- -### 백업 복원하기 +### DB 보안 그룹 규칙 수정하기 ```http -POST /v4.0/backups/{backupId}/restore -``` - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | -| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | -| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | -| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | - -#### 고가용성 사용 시 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +``` -#### 스토리지 자동 확장 사용 시 +#### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "dbInstanceName": "dbInstanceName", - "description": "description-example", - "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbPort": 1, - "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbSecurityGroupIds": [], - "userGroupIds": [], - "useHighAvailability": false, - "pingInterval": 3, - "useDefaultNotification": false, - "useDeletionProtection": false, - "useSlowQueryAnalysis": true, - "network": { - "subnetId": "550e8400-e29b-41d4-a716-446655440000", - "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" - }, - "storage": { - "storageType": "ENUM_VALUE", - "storageSize": 20, - "storageAutoscale": { - "useStorageAutoscale": false - } + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 }, - "backup": { - "backupPeriod": 0, - "backupRetryCount": 0, - "ftwrlWaitTimeout": 0, - "replicationRegion": "KR4", - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3960,7 +4013,7 @@ POST /v4.0/backups/{backupId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -3972,7 +4025,7 @@ POST /v4.0/backups/{backupId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "jobId": "jobId-example" } ``` @@ -3981,12 +4034,12 @@ POST /v4.0/backups/{backupId}/restore --- -## 사용자 그룹 +## 파라미터 그룹 -### 사용자 그룹 목록 보기 +### 파라미터 그룹 목록 보기 ```http -GET /v4.0/user-groups +GET /v4.0/parameter-groups ``` #### 요청 @@ -3997,12 +4050,16 @@ GET /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시 | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 파라미터 그룹 수 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4015,7 +4072,7 @@ GET /v4.0/user-groups "isSuccessful": true }, "totalCounts": 1, - "userGroups": [ + "parameterGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -4028,28 +4085,28 @@ GET /v4.0/user-groups --- -### 사용자 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v4.0/user-groups +POST /v4.0/parameter-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAll": false + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -4060,7 +4117,7 @@ POST /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -4072,7 +4129,7 @@ POST /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4081,10 +4138,10 @@ POST /v4.0/user-groups --- -### 사용자 그룹 삭제하기 +### 파라미터 그룹 삭제하기 ```http -DELETE /v4.0/user-groups/{userGroupId} +DELETE /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -4093,7 +4150,7 @@ DELETE /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -4101,10 +4158,10 @@ DELETE /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 상세 보기 +### 파라미터 그룹 상세 보기 ```http -GET /v4.0/user-groups/{userGroupId} +GET /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -4113,17 +4170,27 @@ GET /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4137,12 +4204,14 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", - "userGroupName": "userGroupName-example", - "userGroupTypeCode": "ENTIRE", - "members": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "memberId": "memberId-example" + "applyType": "BOTH" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4155,29 +4224,27 @@ GET /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 수정하기 +### 파라미터 그룹 수정하기 ```http -PUT /v4.0/user-groups/{userGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAll": false + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ``` @@ -4190,30 +4257,38 @@ PUT /v4.0/user-groups/{userGroupId} --- -## 알림 그룹 - -### 알림 그룹 목록 보기 +### 파라미터 그룹 복사하기 ```http -GET /v4.0/notification-groups +POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -4225,11 +4300,7 @@ GET /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4238,34 +4309,31 @@ GET /v4.0/notification-groups --- -### 알림 그룹 생성하기 +### 파라미터 수정하기 ```http -POST /v4.0/notification-groups +PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "notificationGroupName": "notificationGroupName", - "notifyEmail": true, - "notifySms": true, - "isEnabled": true, - "dbInstanceIds": [], - "userGroupIds": [] + "modifiedParameters": [ + { + "value": "value-example" + } + ] } ``` @@ -4274,33 +4342,14 @@ POST /v4.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | - -

예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "notificationGroupId": "notificationGroupId-example" -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 재설정하기 ```http -DELETE /v4.0/notification-groups/{notificationGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` #### 요청 @@ -4309,7 +4358,7 @@ DELETE /v4.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -4317,37 +4366,28 @@ DELETE /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 상세 보기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -GET /v4.0/notification-groups/{notificationGroupId} +GET /v4.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | | userGroups | Body | Array | 사용자 그룹 목록 | | userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4359,23 +4399,12 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstances": [ - { - "dbInstanceName": "dbInstanceName-example" - } - ], + "totalCounts": 1, "userGroups": [ { - "userGroupName": "userGroupName-example" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4384,35 +4413,28 @@ GET /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v4.0/notification-groups/{notificationGroupId} +POST /v4.0/user-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstanceIds": [], - "userGroupIds": [] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ``` @@ -4421,42 +4443,74 @@ PUT /v4.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "userGroupId": "userGroupId-example" +} +``` + +

+
--- -## 이벤트 +### 사용자 그룹 삭제하기 -### 이벤트 카테고리 +```http +DELETE /v4.0/user-groups/{userGroupId} +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 구독 가능한 이벤트 코드 목록 보기 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 ```http -GET /v4.0/event-codes +GET /v4.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4468,11 +4522,16 @@ GET /v4.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "eventCategoryType": "ALL" + "memberId": "memberId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4481,61 +4540,47 @@ GET /v4.0/event-codes --- -### 이벤트 목록 조회 +### 사용자 그룹 수정하기 ```http -GET /v4.0/events +PUT /v4.0/user-groups/{userGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메세지 목록 | -| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | -| events.messages.message | Body | String | 이벤트 메세지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "events": [ - { - "eventYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 구독 +## 알림 그룹 -### 이벤트 구독 목록 조회 +### 알림 그룹 목록 보기 ```http -GET /v4.0/event-subscriptions +GET /v4.0/notification-groups ``` #### 요청 @@ -4546,20 +4591,14 @@ GET /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4571,10 +4610,9 @@ GET /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "eventSubscriptions": [ + "notificationGroups": [ { - "createdYmdt": "2023-12-31T15:00:00+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -4585,43 +4623,33 @@ GET /v4.0/event-subscriptions --- -### 이벤트 구독 생성하기 +### 알림 그룹 생성하기 ```http -POST /v4.0/event-subscriptions +POST /v4.0/notification-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | - -

예시 -

- -```json -{ - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | + +

예시 +

+ +```json +{ + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], "userGroupIds": [] } ``` @@ -4633,7 +4661,7 @@ POST /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -4645,7 +4673,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -4654,10 +4682,10 @@ POST /v4.0/event-subscriptions --- -### 이벤트 구독 삭제하기 +### 알림 그룹 삭제하기 ```http -DELETE /v4.0/event-subscriptions/{eventSubscriptionId} +DELETE /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -4666,58 +4694,7 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- - -### 이벤트 구독 수정하기 - -```http -PUT /v4.0/event-subscriptions/{eventSubscriptionId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | - -

예시 -

- -```json -{ - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], - "userGroupIds": [] -} -``` - -

-
+| notificationGroupId | URL | UUID | O | | #### 응답 @@ -4725,29 +4702,10 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### 알림 그룹 상세 보기 ```http -GET /v4.0/jobs/{jobId} +GET /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -4756,17 +4714,23 @@ GET /v4.0/jobs/{jobId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| jobId | URL | UUID | O | | +| notificationGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4780,11 +4744,19 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", - "jobStatus": "DELETED", - "resourceRelations": [ + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ { - "resourceId": "resourceId-example" + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4797,90 +4769,82 @@ GET /v4.0/jobs/{jobId} --- -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 +### 알림 그룹 수정하기 ```http -GET /v4.0/parameter-groups +PUT /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 파라미터 그룹 수 | -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "parameterGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 파라미터 그룹 생성하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v4.0/parameter-groups +GET /v4.0/metric-statistics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +이 API는 요청 본문을 요구하지 않습니다. -
예시 -

+#### 응답 -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example", - "dbVersion": "ENUM_VALUE" -} +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### Metric 목록 보기 + +```http +GET /v4.0/metrics ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -4892,7 +4856,11 @@ POST /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "metrics": [ + { + "unit": "unit-example" + } + ] } ``` @@ -4901,61 +4869,38 @@ POST /v4.0/parameter-groups --- -### 파라미터 그룹 삭제하기 - -```http -DELETE /v4.0/parameter-groups/{parameterGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +## 이벤트 -#### 응답 +### 이벤트 카테고리 -이 API는 응답 본문을 반환하지 않습니다. +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. ---- +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -### 파라미터 그룹 상세 보기 +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/event-codes ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | -| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |

예시

@@ -4967,18 +4912,11 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", - "parameterGroupName": "parameterGroupName-example", - "description": "description-example", - "dbVersion": "ENUM_VALUE", - "parameterGroupStatus": "STABLE", - "parameters": [ + "eventCodes": [ { - "applyType": "BOTH" + "eventCategoryType": "ALL" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4987,71 +4925,85 @@ GET /v4.0/parameter-groups/{parameterGroupId} --- -### 파라미터 그룹 수정하기 +### 이벤트 목록 조회 ```http -PUT /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/events ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

```json { - "parameterGroupName": "parameterGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "events": [ + { + "eventYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### 파라미터 그룹 복사하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v4.0/parameter-groups/{parameterGroupId}/copy +GET /v4.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -5063,7 +5015,12 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -5072,31 +5029,44 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy --- -### 파라미터 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/parameters +POST /v4.0/event-subscriptions ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "value": "value-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ``` @@ -5105,14 +5075,33 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "eventSubscriptionId": "eventSubscriptionId-example" +} +``` + +

+
--- -### 파라미터 그룹 재설정하기 +### 이벤트 구독 삭제하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/reset +DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 @@ -5121,7 +5110,7 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +| eventSubscriptionId | URL | UUID | O | | #### 응답 @@ -5129,55 +5118,63 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset --- -## 프로젝트 정보 - -### 프로젝트 멤버 목록 보기 +### 이벤트 구독 수정하기 ```http -GET /v4.0/project/members +PUT /v4.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "phoneNumber": "phoneNumber-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 리전 목록 보기 +## 가용성 영역 + +### 가용성 영역 목록 보기 ```http -GET /v4.0/project/regions +GET /v4.0/availability-zones ``` #### 요청 @@ -5188,9 +5185,10 @@ GET /v4.0/project/regions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| availabilityZones | Body | Array | 가용성 영역 목록 | +| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | +| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | +| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 |
예시

@@ -5202,9 +5200,11 @@ GET /v4.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ + "availabilityZones": [ { - "isEnabled": false + "zoneState": { + "available": false + } } ] } diff --git a/ko/api-guide-v4.0-ngsc.md b/ko/api-guide-v4.0-ngsc.md index 689bf9c4..8a7c9c40 100644 --- a/ko/api-guide-v4.0-ngsc.md +++ b/ko/api-guide-v4.0-ngsc.md @@ -87,21 +87,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 프로젝트 정보 -### DB 보안 그룹 목록 보기 +### 프로젝트 멤버 목록 보기 ```http -GET /v4.0/db-security-groups +GET /v4.0/project/members ``` #### 요청 @@ -112,14 +103,11 @@ GET /v4.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |

예시

@@ -131,10 +119,9 @@ GET /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "dbSecurityGroups": [ + "members": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -145,38 +132,37 @@ GET /v4.0/db-security-groups --- -### DB 보안 그룹 생성하기 +### 리전 목록 보기 ```http -POST /v4.0/db-security-groups +GET /v4.0/project/regions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| rules.cidr | Body | String | O | CIDR | -| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example", - "rules": [ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "regions": [ { - "description": "description-example" + "isEnabled": false } ] } @@ -185,11 +171,29 @@ POST /v4.0/db-security-groups

+--- + +## DB 인스턴스 사양 + +### DB 인스턴스 사양 목록 보기 + +```http +GET /v4.0/db-flavors +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -201,7 +205,11 @@ POST /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ``` @@ -210,62 +218,72 @@ POST /v4.0/db-security-groups --- -### DB 보안 그룹 삭제하기 +## 네트워크 + +### 서브넷 목록 보기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/network/subnets ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] +} +``` + +

+
--- -### DB 보안 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | CIDR | -| rules.createdYmdt | Body | DateTime | 생성 일시 | -| rules.updatedYmdt | Body | DateTime | 수정 일시 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |
예시

@@ -277,17 +295,11 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example", - "dbSecurityGroupName": "dbSecurityGroupName-example", - "description": "description-example", - "progressStatus": "NONE", - "rules": [ + "dbVersions": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "restorableFromObs": false } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -296,43 +308,66 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 수정하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storageTypes": [] } ```

-#### 응답 +--- -이 API는 응답 본문을 반환하지 않습니다. +## 작업 정보 ---- +### 작업 상태 -### DB 보안 그룹 규칙 삭제하기 +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v4.0/jobs/{jobId} ``` #### 요청 @@ -341,14 +376,19 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleIds | Query | String | O | | +| jobId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -360,7 +400,15 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ + { + "resourceId": "resourceId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -369,51 +417,27 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 생성하기 +## DB 인스턴스 그룹 + +### DB 인스턴스 그룹 목록 보기 ```http -POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v4.0/db-instance-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -425,7 +449,11 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "dbInstanceGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -434,92 +462,32 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 수정하기 +### DB 인스턴스 그룹 상세 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` #### 요청 +이 API는 요청 본문을 요구하지 않습니다. + | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
- -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "jobId": "jobId-example" -} -``` - -

-
- ---- - -## DB 엔진 - -### DB 엔진 목록 보기 - -```http -GET /v4.0/db-versions -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. +| dbInstanceGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -531,11 +499,15 @@ GET /v4.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ { - "restorableFromObs": false + "dbInstanceStatus": "BEFORE_CREATE" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3231,12 +3203,22 @@ PUT /v4.0/db-instances/{dbInstanceId}/storage-info --- -## DB 인스턴스 그룹 +## 백업 -### DB 인스턴스 그룹 목록 보기 +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | + +### 백업 목록 조회 ```http -GET /v4.0/db-instance-groups +GET /v4.0/backups ``` #### 요청 @@ -3247,11 +3229,18 @@ GET /v4.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3263,7 +3252,8 @@ GET /v4.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ + "totalCounts": 1, + "backups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3276,32 +3266,41 @@ GET /v4.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +### 백업 생성하기 ```http -GET /v4.0/db-instance-groups/{dbInstanceGroupId} +POST /v4.0/backups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbInstanceGroupId | URL | UUID | O | | +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | +| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | +| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` | + +

예시 +

+ +```json +{ + "backupName": "backupName", + "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "backupMethodType": "FULL" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3313,15 +3312,7 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", - "replicationType": "STANDALONE", - "dbInstances": [ - { - "dbInstanceStatus": "BEFORE_CREATE" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3330,27 +3321,25 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} --- -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 +### 백업 삭제하기 ```http -GET /v4.0/db-flavors +DELETE /v4.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

@@ -3362,11 +3351,7 @@ GET /v4.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "vcpus": 1 - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3375,26 +3360,42 @@ GET /v4.0/db-flavors --- -## 가용성 영역 - -### 가용성 영역 목록 보기 +### 백업 단건 조회 ```http -GET /v4.0/availability-zones +GET /v4.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| availabilityZones | Body | Array | 가용성 영역 목록 | -| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | -| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | -| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 | +| backup | Body | Object | 백업 상세 정보 | +| backup.backupId | Body | String | 백업의 식별자 | +| backup.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| backup.dbVersion | Body | Enum | DB 엔진 버전 | +| backup.utilVersion | Body | String | 유틸리티 버전 | +| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | +| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | +| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | +| backup.backupSize | Body | Number | 백업의 크기(Byte) | +| backup.isReplicable | Body | Boolean | 복제 가능 여부 | +| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | +| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | +| backup.createdYmdt | Body | DateTime | 생성 일시 | +| backup.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3406,13 +3407,26 @@ GET /v4.0/availability-zones "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZones": [ - { - "zoneState": { - "available": false - } - } - ] + "backup": { + "backupId": "backupId-example", + "regionCode": "KR4", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupMethodType": "FULL", + "backupFileType": "XBSTREAM", + "backupSize": 1, + "isReplicable": false, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -3421,69 +3435,44 @@ GET /v4.0/availability-zones --- -## 네트워크 - -### 서브넷 목록 보기 +### 백업 내보내기 ```http -GET /v4.0/network/subnets +POST /v4.0/backups/{backupId}/export ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "subnets": [ - { - "availableIpCount": 1 - } - ] + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

---- - -## 데이터 스토리지 - -### 스토리지 타입 목록 보기 - -```http -GET /v4.0/storage-types -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storageTypes | Body | Array | 스토리지 타입 목록 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3495,7 +3484,7 @@ GET /v4.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3504,41 +3493,114 @@ GET /v4.0/storage-types --- -## 모니터링 - -### 통계 정보 조회 +### 백업 복원하기 ```http -GET /v4.0/metric-statistics +POST /v4.0/backups/{backupId}/restore ``` -#### 요청 +#### 공통 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | +| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | -#### 응답 +#### 고가용성 사용 시 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | ---- +#### 스토리지 자동 확장 사용 시 -### Metric 목록 보기 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -```http -GET /v4.0/metrics -``` +

예시 +

-#### 요청 +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -이 API는 요청 본문을 요구하지 않습니다. +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | String | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3550,11 +3612,7 @@ GET /v4.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "unit": "unit-example" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3563,22 +3621,21 @@ GET /v4.0/metrics --- -## 백업 +## DB 보안 그룹 -### 백업 상태 +### DB 보안 그룹 진행 상태 -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | -### 백업 목록 조회 +### DB 보안 그룹 목록 보기 ```http -GET /v4.0/backups +GET /v4.0/db-security-groups ``` #### 요청 @@ -3589,18 +3646,14 @@ GET /v4.0/backups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| backups.createdYmdt | Body | DateTime | 생성 일시 | -| backups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3613,7 +3666,7 @@ GET /v4.0/backups "isSuccessful": true }, "totalCounts": 1, - "backups": [ + "dbSecurityGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3626,30 +3679,40 @@ GET /v4.0/backups --- -### 백업 생성하기 +### DB 보안 그룹 생성하기 ```http -POST /v4.0/backups +POST /v4.0/db-security-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | -| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | -| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` | +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |

예시

```json { - "backupName": "backupName", - "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", - "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", - "backupMethodType": "FULL" + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ + { + "description": "description-example" + } + ] } ``` @@ -3660,7 +3723,7 @@ POST /v4.0/backups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |

예시

@@ -3672,7 +3735,7 @@ POST /v4.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -3681,10 +3744,10 @@ POST /v4.0/backups --- -### 백업 삭제하기 +### DB 보안 그룹 삭제하기 ```http -DELETE /v4.0/backups/{backupId} +DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 @@ -3693,13 +3756,50 @@ DELETE /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 상세 보기 + +```http +GET /v4.0/db-security-groups/{dbSecurityGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| rules | Body | Array | DB 보안 그룹 규칙 목록 | +| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | 포트 객체 | +| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | 최소 포트 범위 | +| rules.port.maxPort | Body | Number | 최대 포트 범위 | +| rules.cidr | Body | String | CIDR | +| rules.createdYmdt | Body | DateTime | 생성 일시 | +| rules.updatedYmdt | Body | DateTime | 수정 일시 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3711,7 +3811,17 @@ DELETE /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3720,10 +3830,43 @@ DELETE /v4.0/backups/{backupId} --- -### 백업 단건 조회 +### DB 보안 그룹 수정하기 ```http -GET /v4.0/backups/{backupId} +PUT /v4.0/db-security-groups/{dbSecurityGroupId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 규칙 삭제하기 + +```http +DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 @@ -3732,30 +3875,14 @@ GET /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | String | 백업의 식별자 | -| backup.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | -| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| backup.dbVersion | Body | Enum | DB 엔진 버전 | -| backup.utilVersion | Body | String | 유틸리티 버전 | -| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | -| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | -| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | -| backup.backupSize | Body | Number | 백업의 크기(Byte) | -| backup.isReplicable | Body | Boolean | 복제 가능 여부 | -| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | -| backup.createdYmdt | Body | DateTime | 생성 일시 | -| backup.updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -3767,26 +3894,7 @@ GET /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "backup": { - "backupId": "backupId-example", - "regionCode": "KR4", - "backupName": "backupName-example", - "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", - "utilVersion": "utilVersion-example", - "backupType": "AUTO", - "backupMethodType": "FULL", - "backupFileType": "XBSTREAM", - "backupSize": 1, - "isReplicable": false, - "binLogFileName": "binLogFileName-example", - "binLogPosition": { - }, - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } + "jobId": "jobId-example" } ``` @@ -3795,33 +3903,40 @@ GET /v4.0/backups/{backupId} --- -### 백업 내보내기 +### DB 보안 그룹 규칙 생성하기 ```http -POST /v4.0/backups/{backupId}/export +POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | -| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "tenantId": "tenantId-example", - "username": "username-example", - "password": "password-example", - "targetContainer": "targetContainer-example", - "objectPath": "objectPath-example" + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3832,7 +3947,7 @@ POST /v4.0/backups/{backupId}/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -3844,7 +3959,7 @@ POST /v4.0/backups/{backupId}/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "jobId": "jobId-example" } ``` @@ -3853,103 +3968,41 @@ POST /v4.0/backups/{backupId}/export --- -### 백업 복원하기 +### DB 보안 그룹 규칙 수정하기 ```http -POST /v4.0/backups/{backupId}/restore -``` - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | -| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | -| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | -| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | - -#### 고가용성 사용 시 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +``` -#### 스토리지 자동 확장 사용 시 +#### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "dbInstanceName": "dbInstanceName", - "description": "description-example", - "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbPort": 1, - "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbSecurityGroupIds": [], - "userGroupIds": [], - "useHighAvailability": false, - "pingInterval": 3, - "useDefaultNotification": false, - "useDeletionProtection": false, - "useSlowQueryAnalysis": true, - "network": { - "subnetId": "550e8400-e29b-41d4-a716-446655440000", - "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" - }, - "storage": { - "storageType": "ENUM_VALUE", - "storageSize": 20, - "storageAutoscale": { - "useStorageAutoscale": false - } + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 }, - "backup": { - "backupPeriod": 0, - "backupRetryCount": 0, - "ftwrlWaitTimeout": 0, - "replicationRegion": "KR4", - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3960,7 +4013,7 @@ POST /v4.0/backups/{backupId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -3972,7 +4025,7 @@ POST /v4.0/backups/{backupId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "jobId": "jobId-example" } ``` @@ -3981,12 +4034,12 @@ POST /v4.0/backups/{backupId}/restore --- -## 사용자 그룹 +## 파라미터 그룹 -### 사용자 그룹 목록 보기 +### 파라미터 그룹 목록 보기 ```http -GET /v4.0/user-groups +GET /v4.0/parameter-groups ``` #### 요청 @@ -3997,12 +4050,16 @@ GET /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시 | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 파라미터 그룹 수 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4015,7 +4072,7 @@ GET /v4.0/user-groups "isSuccessful": true }, "totalCounts": 1, - "userGroups": [ + "parameterGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -4028,28 +4085,28 @@ GET /v4.0/user-groups --- -### 사용자 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v4.0/user-groups +POST /v4.0/parameter-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAll": false + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -4060,7 +4117,7 @@ POST /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -4072,7 +4129,7 @@ POST /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4081,10 +4138,10 @@ POST /v4.0/user-groups --- -### 사용자 그룹 삭제하기 +### 파라미터 그룹 삭제하기 ```http -DELETE /v4.0/user-groups/{userGroupId} +DELETE /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -4093,7 +4150,7 @@ DELETE /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -4101,10 +4158,10 @@ DELETE /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 상세 보기 +### 파라미터 그룹 상세 보기 ```http -GET /v4.0/user-groups/{userGroupId} +GET /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -4113,17 +4170,27 @@ GET /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4137,12 +4204,14 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", - "userGroupName": "userGroupName-example", - "userGroupTypeCode": "ENTIRE", - "members": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "memberId": "memberId-example" + "applyType": "BOTH" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4155,29 +4224,27 @@ GET /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 수정하기 +### 파라미터 그룹 수정하기 ```http -PUT /v4.0/user-groups/{userGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAll": false + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ``` @@ -4190,30 +4257,38 @@ PUT /v4.0/user-groups/{userGroupId} --- -## 알림 그룹 - -### 알림 그룹 목록 보기 +### 파라미터 그룹 복사하기 ```http -GET /v4.0/notification-groups +POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -4225,11 +4300,7 @@ GET /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4238,34 +4309,31 @@ GET /v4.0/notification-groups --- -### 알림 그룹 생성하기 +### 파라미터 수정하기 ```http -POST /v4.0/notification-groups +PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "notificationGroupName": "notificationGroupName", - "notifyEmail": true, - "notifySms": true, - "isEnabled": true, - "dbInstanceIds": [], - "userGroupIds": [] + "modifiedParameters": [ + { + "value": "value-example" + } + ] } ``` @@ -4274,33 +4342,14 @@ POST /v4.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | - -

예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "notificationGroupId": "notificationGroupId-example" -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 재설정하기 ```http -DELETE /v4.0/notification-groups/{notificationGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` #### 요청 @@ -4309,7 +4358,7 @@ DELETE /v4.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -4317,37 +4366,28 @@ DELETE /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 상세 보기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -GET /v4.0/notification-groups/{notificationGroupId} +GET /v4.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | | userGroups | Body | Array | 사용자 그룹 목록 | | userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4359,23 +4399,12 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstances": [ - { - "dbInstanceName": "dbInstanceName-example" - } - ], + "totalCounts": 1, "userGroups": [ { - "userGroupName": "userGroupName-example" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4384,35 +4413,28 @@ GET /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v4.0/notification-groups/{notificationGroupId} +POST /v4.0/user-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstanceIds": [], - "userGroupIds": [] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ``` @@ -4421,42 +4443,74 @@ PUT /v4.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "userGroupId": "userGroupId-example" +} +``` + +

+
--- -## 이벤트 +### 사용자 그룹 삭제하기 -### 이벤트 카테고리 +```http +DELETE /v4.0/user-groups/{userGroupId} +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 구독 가능한 이벤트 코드 목록 보기 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 ```http -GET /v4.0/event-codes +GET /v4.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4468,11 +4522,16 @@ GET /v4.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "eventCategoryType": "ALL" + "memberId": "memberId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4481,61 +4540,47 @@ GET /v4.0/event-codes --- -### 이벤트 목록 조회 +### 사용자 그룹 수정하기 ```http -GET /v4.0/events +PUT /v4.0/user-groups/{userGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메세지 목록 | -| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | -| events.messages.message | Body | String | 이벤트 메세지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "events": [ - { - "eventYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 구독 +## 알림 그룹 -### 이벤트 구독 목록 조회 +### 알림 그룹 목록 보기 ```http -GET /v4.0/event-subscriptions +GET /v4.0/notification-groups ``` #### 요청 @@ -4546,20 +4591,14 @@ GET /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4571,10 +4610,9 @@ GET /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "eventSubscriptions": [ + "notificationGroups": [ { - "createdYmdt": "2023-12-31T15:00:00+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -4585,43 +4623,33 @@ GET /v4.0/event-subscriptions --- -### 이벤트 구독 생성하기 +### 알림 그룹 생성하기 ```http -POST /v4.0/event-subscriptions +POST /v4.0/notification-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | - -

예시 -

- -```json -{ - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | + +

예시 +

+ +```json +{ + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], "userGroupIds": [] } ``` @@ -4633,7 +4661,7 @@ POST /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -4645,7 +4673,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -4654,10 +4682,10 @@ POST /v4.0/event-subscriptions --- -### 이벤트 구독 삭제하기 +### 알림 그룹 삭제하기 ```http -DELETE /v4.0/event-subscriptions/{eventSubscriptionId} +DELETE /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -4666,58 +4694,7 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- - -### 이벤트 구독 수정하기 - -```http -PUT /v4.0/event-subscriptions/{eventSubscriptionId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | - -

예시 -

- -```json -{ - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], - "userGroupIds": [] -} -``` - -

-
+| notificationGroupId | URL | UUID | O | | #### 응답 @@ -4725,29 +4702,10 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### 알림 그룹 상세 보기 ```http -GET /v4.0/jobs/{jobId} +GET /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -4756,17 +4714,23 @@ GET /v4.0/jobs/{jobId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| jobId | URL | UUID | O | | +| notificationGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4780,11 +4744,19 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", - "jobStatus": "DELETED", - "resourceRelations": [ + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ { - "resourceId": "resourceId-example" + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4797,90 +4769,82 @@ GET /v4.0/jobs/{jobId} --- -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 +### 알림 그룹 수정하기 ```http -GET /v4.0/parameter-groups +PUT /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 파라미터 그룹 수 | -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "parameterGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 파라미터 그룹 생성하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v4.0/parameter-groups +GET /v4.0/metric-statistics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +이 API는 요청 본문을 요구하지 않습니다. -
예시 -

+#### 응답 -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example", - "dbVersion": "ENUM_VALUE" -} +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### Metric 목록 보기 + +```http +GET /v4.0/metrics ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -4892,7 +4856,11 @@ POST /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "metrics": [ + { + "unit": "unit-example" + } + ] } ``` @@ -4901,61 +4869,38 @@ POST /v4.0/parameter-groups --- -### 파라미터 그룹 삭제하기 - -```http -DELETE /v4.0/parameter-groups/{parameterGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +## 이벤트 -#### 응답 +### 이벤트 카테고리 -이 API는 응답 본문을 반환하지 않습니다. +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. ---- +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -### 파라미터 그룹 상세 보기 +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/event-codes ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | -| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |

예시

@@ -4967,18 +4912,11 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", - "parameterGroupName": "parameterGroupName-example", - "description": "description-example", - "dbVersion": "ENUM_VALUE", - "parameterGroupStatus": "STABLE", - "parameters": [ + "eventCodes": [ { - "applyType": "BOTH" + "eventCategoryType": "ALL" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4987,71 +4925,85 @@ GET /v4.0/parameter-groups/{parameterGroupId} --- -### 파라미터 그룹 수정하기 +### 이벤트 목록 조회 ```http -PUT /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/events ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

```json { - "parameterGroupName": "parameterGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "events": [ + { + "eventYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### 파라미터 그룹 복사하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v4.0/parameter-groups/{parameterGroupId}/copy +GET /v4.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -5063,7 +5015,12 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -5072,31 +5029,44 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy --- -### 파라미터 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/parameters +POST /v4.0/event-subscriptions ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "value": "value-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ``` @@ -5105,14 +5075,33 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "eventSubscriptionId": "eventSubscriptionId-example" +} +``` + +

+
--- -### 파라미터 그룹 재설정하기 +### 이벤트 구독 삭제하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/reset +DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 @@ -5121,7 +5110,7 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +| eventSubscriptionId | URL | UUID | O | | #### 응답 @@ -5129,55 +5118,63 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset --- -## 프로젝트 정보 - -### 프로젝트 멤버 목록 보기 +### 이벤트 구독 수정하기 ```http -GET /v4.0/project/members +PUT /v4.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "phoneNumber": "phoneNumber-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 리전 목록 보기 +## 가용성 영역 + +### 가용성 영역 목록 보기 ```http -GET /v4.0/project/regions +GET /v4.0/availability-zones ``` #### 요청 @@ -5188,9 +5185,10 @@ GET /v4.0/project/regions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| availabilityZones | Body | Array | 가용성 영역 목록 | +| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | +| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | +| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 |
예시

@@ -5202,9 +5200,11 @@ GET /v4.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ + "availabilityZones": [ { - "isEnabled": false + "zoneState": { + "available": false + } } ] } diff --git a/ko/api-guide-v4.0-ninc.md b/ko/api-guide-v4.0-ninc.md index f0388540..2e102a5a 100644 --- a/ko/api-guide-v4.0-ninc.md +++ b/ko/api-guide-v4.0-ninc.md @@ -87,21 +87,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 프로젝트 정보 -### DB 보안 그룹 목록 보기 +### 프로젝트 멤버 목록 보기 ```http -GET /v4.0/db-security-groups +GET /v4.0/project/members ``` #### 요청 @@ -112,14 +103,11 @@ GET /v4.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |

예시

@@ -131,10 +119,9 @@ GET /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "dbSecurityGroups": [ + "members": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -145,38 +132,37 @@ GET /v4.0/db-security-groups --- -### DB 보안 그룹 생성하기 +### 리전 목록 보기 ```http -POST /v4.0/db-security-groups +GET /v4.0/project/regions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| rules.cidr | Body | String | O | CIDR | -| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example", - "rules": [ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "regions": [ { - "description": "description-example" + "isEnabled": false } ] } @@ -185,11 +171,29 @@ POST /v4.0/db-security-groups

+--- + +## DB 인스턴스 사양 + +### DB 인스턴스 사양 목록 보기 + +```http +GET /v4.0/db-flavors +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -201,7 +205,11 @@ POST /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ``` @@ -210,62 +218,72 @@ POST /v4.0/db-security-groups --- -### DB 보안 그룹 삭제하기 +## 네트워크 + +### 서브넷 목록 보기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/network/subnets ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] +} +``` + +

+
--- -### DB 보안 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | CIDR | -| rules.createdYmdt | Body | DateTime | 생성 일시 | -| rules.updatedYmdt | Body | DateTime | 수정 일시 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |
예시

@@ -277,17 +295,11 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example", - "dbSecurityGroupName": "dbSecurityGroupName-example", - "description": "description-example", - "progressStatus": "NONE", - "rules": [ + "dbVersions": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "restorableFromObs": false } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -296,43 +308,66 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 수정하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storageTypes": [] } ```

-#### 응답 +--- -이 API는 응답 본문을 반환하지 않습니다. +## 작업 정보 ---- +### 작업 상태 -### DB 보안 그룹 규칙 삭제하기 +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v4.0/jobs/{jobId} ``` #### 요청 @@ -341,14 +376,19 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleIds | Query | String | O | | +| jobId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -360,7 +400,15 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ + { + "resourceId": "resourceId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -369,51 +417,27 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 생성하기 +## DB 인스턴스 그룹 + +### DB 인스턴스 그룹 목록 보기 ```http -POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v4.0/db-instance-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -425,7 +449,11 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "dbInstanceGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -434,92 +462,32 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 수정하기 +### DB 인스턴스 그룹 상세 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` #### 요청 +이 API는 요청 본문을 요구하지 않습니다. + | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
- -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "jobId": "jobId-example" -} -``` - -

-
- ---- - -## DB 엔진 - -### DB 엔진 목록 보기 - -```http -GET /v4.0/db-versions -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. +| dbInstanceGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -531,11 +499,15 @@ GET /v4.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ { - "restorableFromObs": false + "dbInstanceStatus": "BEFORE_CREATE" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3231,12 +3203,22 @@ PUT /v4.0/db-instances/{dbInstanceId}/storage-info --- -## DB 인스턴스 그룹 +## 백업 -### DB 인스턴스 그룹 목록 보기 +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | + +### 백업 목록 조회 ```http -GET /v4.0/db-instance-groups +GET /v4.0/backups ``` #### 요청 @@ -3247,11 +3229,18 @@ GET /v4.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3263,7 +3252,8 @@ GET /v4.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ + "totalCounts": 1, + "backups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3276,32 +3266,41 @@ GET /v4.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +### 백업 생성하기 ```http -GET /v4.0/db-instance-groups/{dbInstanceGroupId} +POST /v4.0/backups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbInstanceGroupId | URL | UUID | O | | +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | +| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | +| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` | + +

예시 +

+ +```json +{ + "backupName": "backupName", + "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "backupMethodType": "FULL" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3313,15 +3312,7 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", - "replicationType": "STANDALONE", - "dbInstances": [ - { - "dbInstanceStatus": "BEFORE_CREATE" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3330,27 +3321,25 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} --- -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 +### 백업 삭제하기 ```http -GET /v4.0/db-flavors +DELETE /v4.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

@@ -3362,11 +3351,7 @@ GET /v4.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "vcpus": 1 - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3375,26 +3360,42 @@ GET /v4.0/db-flavors --- -## 가용성 영역 - -### 가용성 영역 목록 보기 +### 백업 단건 조회 ```http -GET /v4.0/availability-zones +GET /v4.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| availabilityZones | Body | Array | 가용성 영역 목록 | -| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | -| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | -| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 | +| backup | Body | Object | 백업 상세 정보 | +| backup.backupId | Body | String | 백업의 식별자 | +| backup.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | +| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| backup.dbVersion | Body | Enum | DB 엔진 버전 | +| backup.utilVersion | Body | String | 유틸리티 버전 | +| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | +| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | +| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | +| backup.backupSize | Body | Number | 백업의 크기(Byte) | +| backup.isReplicable | Body | Boolean | 복제 가능 여부 | +| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | +| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | +| backup.createdYmdt | Body | DateTime | 생성 일시 | +| backup.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3406,13 +3407,26 @@ GET /v4.0/availability-zones "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZones": [ - { - "zoneState": { - "available": false - } - } - ] + "backup": { + "backupId": "backupId-example", + "regionCode": "KR4", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupMethodType": "FULL", + "backupFileType": "XBSTREAM", + "backupSize": 1, + "isReplicable": false, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -3421,69 +3435,44 @@ GET /v4.0/availability-zones --- -## 네트워크 - -### 서브넷 목록 보기 +### 백업 내보내기 ```http -GET /v4.0/network/subnets +POST /v4.0/backups/{backupId}/export ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "subnets": [ - { - "availableIpCount": 1 - } - ] + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

---- - -## 데이터 스토리지 - -### 스토리지 타입 목록 보기 - -```http -GET /v4.0/storage-types -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storageTypes | Body | Array | 스토리지 타입 목록 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3495,7 +3484,7 @@ GET /v4.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3504,41 +3493,114 @@ GET /v4.0/storage-types --- -## 모니터링 - -### 통계 정보 조회 +### 백업 복원하기 ```http -GET /v4.0/metric-statistics +POST /v4.0/backups/{backupId}/restore ``` -#### 요청 +#### 공통 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | +| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | -#### 응답 +#### 고가용성 사용 시 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | ---- +#### 스토리지 자동 확장 사용 시 -### Metric 목록 보기 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -```http -GET /v4.0/metrics -``` +

예시 +

-#### 요청 +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR4", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -이 API는 요청 본문을 요구하지 않습니다. +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | String | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3550,11 +3612,7 @@ GET /v4.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "unit": "unit-example" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3563,22 +3621,21 @@ GET /v4.0/metrics --- -## 백업 +## DB 보안 그룹 -### 백업 상태 +### DB 보안 그룹 진행 상태 -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | -### 백업 목록 조회 +### DB 보안 그룹 목록 보기 ```http -GET /v4.0/backups +GET /v4.0/db-security-groups ``` #### 요청 @@ -3589,18 +3646,14 @@ GET /v4.0/backups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| backups.createdYmdt | Body | DateTime | 생성 일시 | -| backups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3613,7 +3666,7 @@ GET /v4.0/backups "isSuccessful": true }, "totalCounts": 1, - "backups": [ + "dbSecurityGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3626,30 +3679,40 @@ GET /v4.0/backups --- -### 백업 생성하기 +### DB 보안 그룹 생성하기 ```http -POST /v4.0/backups +POST /v4.0/db-security-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | -| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | -| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` | +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |

예시

```json { - "backupName": "backupName", - "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", - "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", - "backupMethodType": "FULL" + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ + { + "description": "description-example" + } + ] } ``` @@ -3660,7 +3723,7 @@ POST /v4.0/backups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |

예시

@@ -3672,7 +3735,7 @@ POST /v4.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -3681,10 +3744,10 @@ POST /v4.0/backups --- -### 백업 삭제하기 +### DB 보안 그룹 삭제하기 ```http -DELETE /v4.0/backups/{backupId} +DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 @@ -3693,13 +3756,50 @@ DELETE /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 상세 보기 + +```http +GET /v4.0/db-security-groups/{dbSecurityGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| rules | Body | Array | DB 보안 그룹 규칙 목록 | +| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | 포트 객체 | +| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | 최소 포트 범위 | +| rules.port.maxPort | Body | Number | 최대 포트 범위 | +| rules.cidr | Body | String | CIDR | +| rules.createdYmdt | Body | DateTime | 생성 일시 | +| rules.updatedYmdt | Body | DateTime | 수정 일시 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3711,7 +3811,17 @@ DELETE /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3720,10 +3830,43 @@ DELETE /v4.0/backups/{backupId} --- -### 백업 단건 조회 +### DB 보안 그룹 수정하기 ```http -GET /v4.0/backups/{backupId} +PUT /v4.0/db-security-groups/{dbSecurityGroupId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 규칙 삭제하기 + +```http +DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 @@ -3732,30 +3875,14 @@ GET /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | String | 백업의 식별자 | -| backup.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | -| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| backup.dbVersion | Body | Enum | DB 엔진 버전 | -| backup.utilVersion | Body | String | 유틸리티 버전 | -| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | -| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | -| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | -| backup.backupSize | Body | Number | 백업의 크기(Byte) | -| backup.isReplicable | Body | Boolean | 복제 가능 여부 | -| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | -| backup.createdYmdt | Body | DateTime | 생성 일시 | -| backup.updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -3767,26 +3894,7 @@ GET /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "backup": { - "backupId": "backupId-example", - "regionCode": "KR4", - "backupName": "backupName-example", - "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", - "utilVersion": "utilVersion-example", - "backupType": "AUTO", - "backupMethodType": "FULL", - "backupFileType": "XBSTREAM", - "backupSize": 1, - "isReplicable": false, - "binLogFileName": "binLogFileName-example", - "binLogPosition": { - }, - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } + "jobId": "jobId-example" } ``` @@ -3795,33 +3903,40 @@ GET /v4.0/backups/{backupId} --- -### 백업 내보내기 +### DB 보안 그룹 규칙 생성하기 ```http -POST /v4.0/backups/{backupId}/export +POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | -| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "tenantId": "tenantId-example", - "username": "username-example", - "password": "password-example", - "targetContainer": "targetContainer-example", - "objectPath": "objectPath-example" + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3832,7 +3947,7 @@ POST /v4.0/backups/{backupId}/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -3844,7 +3959,7 @@ POST /v4.0/backups/{backupId}/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "jobId": "jobId-example" } ``` @@ -3853,103 +3968,41 @@ POST /v4.0/backups/{backupId}/export --- -### 백업 복원하기 +### DB 보안 그룹 규칙 수정하기 ```http -POST /v4.0/backups/{backupId}/restore -``` - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | -| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | -| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR4: `한국(대구)` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | -| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | - -#### 고가용성 사용 시 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +``` -#### 스토리지 자동 확장 사용 시 +#### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "dbInstanceName": "dbInstanceName", - "description": "description-example", - "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbPort": 1, - "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbSecurityGroupIds": [], - "userGroupIds": [], - "useHighAvailability": false, - "pingInterval": 3, - "useDefaultNotification": false, - "useDeletionProtection": false, - "useSlowQueryAnalysis": true, - "network": { - "subnetId": "550e8400-e29b-41d4-a716-446655440000", - "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" - }, - "storage": { - "storageType": "ENUM_VALUE", - "storageSize": 20, - "storageAutoscale": { - "useStorageAutoscale": false - } + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 }, - "backup": { - "backupPeriod": 0, - "backupRetryCount": 0, - "ftwrlWaitTimeout": 0, - "replicationRegion": "KR4", - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3960,7 +4013,7 @@ POST /v4.0/backups/{backupId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -3972,7 +4025,7 @@ POST /v4.0/backups/{backupId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "jobId": "jobId-example" } ``` @@ -3981,12 +4034,12 @@ POST /v4.0/backups/{backupId}/restore --- -## 사용자 그룹 +## 파라미터 그룹 -### 사용자 그룹 목록 보기 +### 파라미터 그룹 목록 보기 ```http -GET /v4.0/user-groups +GET /v4.0/parameter-groups ``` #### 요청 @@ -3997,12 +4050,16 @@ GET /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시 | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 파라미터 그룹 수 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4015,7 +4072,7 @@ GET /v4.0/user-groups "isSuccessful": true }, "totalCounts": 1, - "userGroups": [ + "parameterGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -4028,28 +4085,28 @@ GET /v4.0/user-groups --- -### 사용자 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v4.0/user-groups +POST /v4.0/parameter-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAll": false + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -4060,7 +4117,7 @@ POST /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -4072,7 +4129,7 @@ POST /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4081,10 +4138,10 @@ POST /v4.0/user-groups --- -### 사용자 그룹 삭제하기 +### 파라미터 그룹 삭제하기 ```http -DELETE /v4.0/user-groups/{userGroupId} +DELETE /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -4093,7 +4150,7 @@ DELETE /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -4101,10 +4158,10 @@ DELETE /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 상세 보기 +### 파라미터 그룹 상세 보기 ```http -GET /v4.0/user-groups/{userGroupId} +GET /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -4113,17 +4170,27 @@ GET /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4137,12 +4204,14 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", - "userGroupName": "userGroupName-example", - "userGroupTypeCode": "ENTIRE", - "members": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "memberId": "memberId-example" + "applyType": "BOTH" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4155,29 +4224,27 @@ GET /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 수정하기 +### 파라미터 그룹 수정하기 ```http -PUT /v4.0/user-groups/{userGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAll": false + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ``` @@ -4190,30 +4257,38 @@ PUT /v4.0/user-groups/{userGroupId} --- -## 알림 그룹 - -### 알림 그룹 목록 보기 +### 파라미터 그룹 복사하기 ```http -GET /v4.0/notification-groups +POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -4225,11 +4300,7 @@ GET /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4238,34 +4309,31 @@ GET /v4.0/notification-groups --- -### 알림 그룹 생성하기 +### 파라미터 수정하기 ```http -POST /v4.0/notification-groups +PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "notificationGroupName": "notificationGroupName", - "notifyEmail": true, - "notifySms": true, - "isEnabled": true, - "dbInstanceIds": [], - "userGroupIds": [] + "modifiedParameters": [ + { + "value": "value-example" + } + ] } ``` @@ -4274,33 +4342,14 @@ POST /v4.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | - -

예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "notificationGroupId": "notificationGroupId-example" -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 재설정하기 ```http -DELETE /v4.0/notification-groups/{notificationGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` #### 요청 @@ -4309,7 +4358,7 @@ DELETE /v4.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -4317,37 +4366,28 @@ DELETE /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 상세 보기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -GET /v4.0/notification-groups/{notificationGroupId} +GET /v4.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | | userGroups | Body | Array | 사용자 그룹 목록 | | userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4359,23 +4399,12 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstances": [ - { - "dbInstanceName": "dbInstanceName-example" - } - ], + "totalCounts": 1, "userGroups": [ { - "userGroupName": "userGroupName-example" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4384,35 +4413,28 @@ GET /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v4.0/notification-groups/{notificationGroupId} +POST /v4.0/user-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstanceIds": [], - "userGroupIds": [] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ``` @@ -4421,42 +4443,74 @@ PUT /v4.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "userGroupId": "userGroupId-example" +} +``` + +

+
--- -## 이벤트 +### 사용자 그룹 삭제하기 -### 이벤트 카테고리 +```http +DELETE /v4.0/user-groups/{userGroupId} +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 구독 가능한 이벤트 코드 목록 보기 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 ```http -GET /v4.0/event-codes +GET /v4.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4468,11 +4522,16 @@ GET /v4.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "eventCategoryType": "ALL" + "memberId": "memberId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4481,61 +4540,47 @@ GET /v4.0/event-codes --- -### 이벤트 목록 조회 +### 사용자 그룹 수정하기 ```http -GET /v4.0/events +PUT /v4.0/user-groups/{userGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메세지 목록 | -| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | -| events.messages.message | Body | String | 이벤트 메세지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "events": [ - { - "eventYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 구독 +## 알림 그룹 -### 이벤트 구독 목록 조회 +### 알림 그룹 목록 보기 ```http -GET /v4.0/event-subscriptions +GET /v4.0/notification-groups ``` #### 요청 @@ -4546,20 +4591,14 @@ GET /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4571,10 +4610,9 @@ GET /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "eventSubscriptions": [ + "notificationGroups": [ { - "createdYmdt": "2023-12-31T15:00:00+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -4585,43 +4623,33 @@ GET /v4.0/event-subscriptions --- -### 이벤트 구독 생성하기 +### 알림 그룹 생성하기 ```http -POST /v4.0/event-subscriptions +POST /v4.0/notification-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | - -

예시 -

- -```json -{ - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | + +

예시 +

+ +```json +{ + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], "userGroupIds": [] } ``` @@ -4633,7 +4661,7 @@ POST /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -4645,7 +4673,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -4654,10 +4682,10 @@ POST /v4.0/event-subscriptions --- -### 이벤트 구독 삭제하기 +### 알림 그룹 삭제하기 ```http -DELETE /v4.0/event-subscriptions/{eventSubscriptionId} +DELETE /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -4666,58 +4694,7 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- - -### 이벤트 구독 수정하기 - -```http -PUT /v4.0/event-subscriptions/{eventSubscriptionId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | - -

예시 -

- -```json -{ - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], - "userGroupIds": [] -} -``` - -

-
+| notificationGroupId | URL | UUID | O | | #### 응답 @@ -4725,29 +4702,10 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### 알림 그룹 상세 보기 ```http -GET /v4.0/jobs/{jobId} +GET /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -4756,17 +4714,23 @@ GET /v4.0/jobs/{jobId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| jobId | URL | UUID | O | | +| notificationGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4780,11 +4744,19 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", - "jobStatus": "DELETED", - "resourceRelations": [ + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ { - "resourceId": "resourceId-example" + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4797,90 +4769,82 @@ GET /v4.0/jobs/{jobId} --- -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 +### 알림 그룹 수정하기 ```http -GET /v4.0/parameter-groups +PUT /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 파라미터 그룹 수 | -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "parameterGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 파라미터 그룹 생성하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v4.0/parameter-groups +GET /v4.0/metric-statistics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +이 API는 요청 본문을 요구하지 않습니다. -
예시 -

+#### 응답 -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example", - "dbVersion": "ENUM_VALUE" -} +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### Metric 목록 보기 + +```http +GET /v4.0/metrics ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -4892,7 +4856,11 @@ POST /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "metrics": [ + { + "unit": "unit-example" + } + ] } ``` @@ -4901,61 +4869,38 @@ POST /v4.0/parameter-groups --- -### 파라미터 그룹 삭제하기 - -```http -DELETE /v4.0/parameter-groups/{parameterGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +## 이벤트 -#### 응답 +### 이벤트 카테고리 -이 API는 응답 본문을 반환하지 않습니다. +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. ---- +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -### 파라미터 그룹 상세 보기 +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/event-codes ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | -| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |

예시

@@ -4967,18 +4912,11 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", - "parameterGroupName": "parameterGroupName-example", - "description": "description-example", - "dbVersion": "ENUM_VALUE", - "parameterGroupStatus": "STABLE", - "parameters": [ + "eventCodes": [ { - "applyType": "BOTH" + "eventCategoryType": "ALL" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4987,71 +4925,85 @@ GET /v4.0/parameter-groups/{parameterGroupId} --- -### 파라미터 그룹 수정하기 +### 이벤트 목록 조회 ```http -PUT /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/events ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

```json { - "parameterGroupName": "parameterGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "events": [ + { + "eventYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### 파라미터 그룹 복사하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v4.0/parameter-groups/{parameterGroupId}/copy +GET /v4.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -5063,7 +5015,12 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -5072,31 +5029,44 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy --- -### 파라미터 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/parameters +POST /v4.0/event-subscriptions ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "value": "value-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ``` @@ -5105,14 +5075,33 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "eventSubscriptionId": "eventSubscriptionId-example" +} +``` + +

+
--- -### 파라미터 그룹 재설정하기 +### 이벤트 구독 삭제하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/reset +DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 @@ -5121,7 +5110,7 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +| eventSubscriptionId | URL | UUID | O | | #### 응답 @@ -5129,55 +5118,63 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset --- -## 프로젝트 정보 - -### 프로젝트 멤버 목록 보기 +### 이벤트 구독 수정하기 ```http -GET /v4.0/project/members +PUT /v4.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "phoneNumber": "phoneNumber-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 리전 목록 보기 +## 가용성 영역 + +### 가용성 영역 목록 보기 ```http -GET /v4.0/project/regions +GET /v4.0/availability-zones ``` #### 요청 @@ -5188,9 +5185,10 @@ GET /v4.0/project/regions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| availabilityZones | Body | Array | 가용성 영역 목록 | +| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | +| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | +| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 |
예시

@@ -5202,9 +5200,11 @@ GET /v4.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ + "availabilityZones": [ { - "isEnabled": false + "zoneState": { + "available": false + } } ] } diff --git a/ko/api-guide-v4.0.md b/ko/api-guide-v4.0.md index 5867f200..7da88888 100644 --- a/ko/api-guide-v4.0.md +++ b/ko/api-guide-v4.0.md @@ -89,21 +89,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 * ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. -## DB 보안 그룹 - -### DB 보안 그룹 진행 상태 - -| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +## 프로젝트 정보 -### DB 보안 그룹 목록 보기 +### 프로젝트 멤버 목록 보기 ```http -GET /v4.0/db-security-groups +GET /v4.0/project/members ``` #### 요청 @@ -114,14 +105,11 @@ GET /v4.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |

예시

@@ -133,10 +121,9 @@ GET /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "dbSecurityGroups": [ + "members": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "phoneNumber": "phoneNumber-example" } ] } @@ -147,38 +134,37 @@ GET /v4.0/db-security-groups --- -### DB 보안 그룹 생성하기 +### 리전 목록 보기 ```http -POST /v4.0/db-security-groups +GET /v4.0/project/regions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| rules.cidr | Body | String | O | CIDR | -| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example", - "rules": [ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "regions": [ { - "description": "description-example" + "isEnabled": false } ] } @@ -187,11 +173,29 @@ POST /v4.0/db-security-groups

+--- + +## DB 인스턴스 사양 + +### DB 인스턴스 사양 목록 보기 + +```http +GET /v4.0/db-flavors +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |
예시

@@ -203,7 +207,11 @@ POST /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbFlavors": [ + { + "vcpus": 1 + } + ] } ``` @@ -212,62 +220,72 @@ POST /v4.0/db-security-groups --- -### DB 보안 그룹 삭제하기 +## 네트워크 + +### 서브넷 목록 보기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/network/subnets ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "subnets": [ + { + "availableIpCount": 1 + } + ] +} +``` + +

+
--- -### DB 보안 그룹 상세 보기 +## DB 엔진 + +### DB 엔진 목록 보기 ```http -GET /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/db-versions ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | CIDR | -| rules.createdYmdt | Body | DateTime | 생성 일시 | -| rules.updatedYmdt | Body | DateTime | 수정 일시 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |
예시

@@ -279,17 +297,11 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example", - "dbSecurityGroupName": "dbSecurityGroupName-example", - "description": "description-example", - "progressStatus": "NONE", - "rules": [ + "dbVersions": [ { - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "restorableFromObs": false } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -298,43 +310,66 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 수정하기 +## 데이터 스토리지 + +### 스토리지 타입 목록 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/storage-types ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storageTypes": [] } ```

-#### 응답 +--- -이 API는 응답 본문을 반환하지 않습니다. +## 작업 정보 ---- +### 작업 상태 -### DB 보안 그룹 규칙 삭제하기 +| 상태명 | 설명 | +|--------------------|----------------------| +| `PREPARING` | 작업이 준비 중인 경우 | +| `READY` | 작업이 준비 완료된 경우 | +| `RUNNING` | 작업이 진행 중인 경우 | +| `COMPLETED` | 작업이 완료된 경우 | +| `REGISTERED` | 작업이 등록된 경우 | +| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | +| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | +| `CANCELED` | 작업이 취소된 경우 | +| `FAILED` | 작업이 실패한 경우 | +| `ERROR` | 작업 진행 중 오류가 발생한 경우 | +| `DELETED` | 작업이 삭제된 경우 | +| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | + +### 작업 정보 상세 보기 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v4.0/jobs/{jobId} ``` #### 요청 @@ -343,14 +378,19 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleIds | Query | String | O | | +| jobId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -362,7 +402,15 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "jobId-example", + "jobStatus": "DELETED", + "resourceRelations": [ + { + "resourceId": "resourceId-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -371,51 +419,27 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 생성하기 +## DB 인스턴스 그룹 + +### DB 인스턴스 그룹 목록 보기 ```http -POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules +GET /v4.0/db-instance-groups ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -427,7 +451,11 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "dbInstanceGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -436,92 +464,32 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules --- -### DB 보안 그룹 규칙 수정하기 +### DB 인스턴스 그룹 상세 보기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` #### 요청 +이 API는 요청 본문을 요구하지 않습니다. + | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbSecurityGroupId | URL | UUID | O | | -| ruleId | URL | UUID | O | | -| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | -| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | -| cidr | Body | String | O | CIDR | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` | - -

예시 -

- -```json -{ - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "ALL", - "minPort": 3306, - "maxPort": 1 - }, - "cidr": "cidr-example", - "description": "description-example" -} -``` - -

-
- -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | - -
예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "jobId": "jobId-example" -} -``` - -

-
- ---- - -## DB 엔진 - -### DB 엔진 목록 보기 - -```http -GET /v4.0/db-versions -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. +| dbInstanceGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | -| dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -533,11 +501,15 @@ GET /v4.0/db-versions "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbVersions": [ + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "dbInstances": [ { - "restorableFromObs": false + "dbInstanceStatus": "BEFORE_CREATE" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3233,12 +3205,22 @@ PUT /v4.0/db-instances/{dbInstanceId}/storage-info --- -## DB 인스턴스 그룹 +## 백업 -### DB 인스턴스 그룹 목록 보기 +### 백업 상태 + +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | + +### 백업 목록 조회 ```http -GET /v4.0/db-instance-groups +GET /v4.0/backups ``` #### 요청 @@ -3249,11 +3231,18 @@ GET /v4.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3265,7 +3254,8 @@ GET /v4.0/db-instance-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroups": [ + "totalCounts": 1, + "backups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3278,32 +3268,41 @@ GET /v4.0/db-instance-groups --- -### DB 인스턴스 그룹 상세 보기 +### 백업 생성하기 ```http -GET /v4.0/db-instance-groups/{dbInstanceGroupId} +POST /v4.0/backups ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| dbInstanceGroupId | URL | UUID | O | | +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | +| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | +| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` | + +

예시 +

+ +```json +{ + "backupName": "backupName", + "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "backupMethodType": "FULL" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3315,15 +3314,7 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", - "replicationType": "STANDALONE", - "dbInstances": [ - { - "dbInstanceStatus": "BEFORE_CREATE" - } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3332,27 +3323,25 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} --- -## DB 인스턴스 사양 - -### DB 인스턴스 사양 목록 보기 +### 백업 삭제하기 ```http -GET /v4.0/db-flavors +DELETE /v4.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

@@ -3364,11 +3353,7 @@ GET /v4.0/db-flavors "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbFlavors": [ - { - "vcpus": 1 - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3377,26 +3362,42 @@ GET /v4.0/db-flavors --- -## 가용성 영역 - -### 가용성 영역 목록 보기 +### 백업 단건 조회 ```http -GET /v4.0/availability-zones +GET /v4.0/backups/{backupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| availabilityZones | Body | Array | 가용성 영역 목록 | -| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | -| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | -| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 | +| backup | Body | Object | 백업 상세 정보 | +| backup.backupId | Body | String | 백업의 식별자 | +| backup.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| backup.dbVersion | Body | Enum | DB 엔진 버전 | +| backup.utilVersion | Body | String | 유틸리티 버전 | +| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | +| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | +| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | +| backup.backupSize | Body | Number | 백업의 크기(Byte) | +| backup.isReplicable | Body | Boolean | 복제 가능 여부 | +| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | +| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | +| backup.createdYmdt | Body | DateTime | 생성 일시 | +| backup.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3408,13 +3409,26 @@ GET /v4.0/availability-zones "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZones": [ - { - "zoneState": { - "available": false - } - } - ] + "backup": { + "backupId": "backupId-example", + "regionCode": "KR1", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupMethodType": "FULL", + "backupFileType": "XBSTREAM", + "backupSize": 1, + "isReplicable": false, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } } ``` @@ -3423,69 +3437,44 @@ GET /v4.0/availability-zones --- -## 네트워크 - -### 서브넷 목록 보기 +### 백업 내보내기 ```http -GET /v4.0/network/subnets +POST /v4.0/backups/{backupId}/export ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "subnets": [ - { - "availableIpCount": 1 - } - ] + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

---- - -## 데이터 스토리지 - -### 스토리지 타입 목록 보기 - -```http -GET /v4.0/storage-types -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| storageTypes | Body | Array | 스토리지 타입 목록 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3497,7 +3486,7 @@ GET /v4.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3506,41 +3495,114 @@ GET /v4.0/storage-types --- -## 모니터링 - -### 통계 정보 조회 +### 백업 복원하기 ```http -GET /v4.0/metric-statistics +POST /v4.0/backups/{backupId}/restore ``` -#### 요청 +#### 공통 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | +| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | -#### 응답 +#### 고가용성 사용 시 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | ---- +#### 스토리지 자동 확장 사용 시 -### Metric 목록 보기 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -```http -GET /v4.0/metrics -``` +

예시 +

-#### 요청 +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -이 API는 요청 본문을 요구하지 않습니다. +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | String | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3552,11 +3614,7 @@ GET /v4.0/metrics "resultMessage": "SUCCESS", "isSuccessful": true }, - "metrics": [ - { - "unit": "unit-example" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3565,22 +3623,21 @@ GET /v4.0/metrics --- -## 백업 +## DB 보안 그룹 -### 백업 상태 +### DB 보안 그룹 진행 상태 -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | -### 백업 목록 조회 +### DB 보안 그룹 목록 보기 ```http -GET /v4.0/backups +GET /v4.0/db-security-groups ``` #### 요청 @@ -3591,18 +3648,14 @@ GET /v4.0/backups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.utilVersion | Body | String | 유틸리티 버전 | -| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| backups.createdYmdt | Body | DateTime | 생성 일시 | -| backups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3615,7 +3668,7 @@ GET /v4.0/backups "isSuccessful": true }, "totalCounts": 1, - "backups": [ + "dbSecurityGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -3628,30 +3681,40 @@ GET /v4.0/backups --- -### 백업 생성하기 +### DB 보안 그룹 생성하기 ```http -POST /v4.0/backups +POST /v4.0/db-security-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | -| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | -| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` | +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 |

예시

```json { - "backupName": "backupName", - "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", - "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", - "backupMethodType": "FULL" + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ + { + "description": "description-example" + } + ] } ``` @@ -3662,7 +3725,7 @@ POST /v4.0/backups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |

예시

@@ -3674,7 +3737,7 @@ POST /v4.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "dbSecurityGroupId": "dbSecurityGroupId-example" } ``` @@ -3683,10 +3746,10 @@ POST /v4.0/backups --- -### 백업 삭제하기 +### DB 보안 그룹 삭제하기 ```http -DELETE /v4.0/backups/{backupId} +DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` #### 요청 @@ -3695,13 +3758,50 @@ DELETE /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 상세 보기 + +```http +GET /v4.0/db-security-groups/{dbSecurityGroupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| rules | Body | Array | DB 보안 그룹 규칙 목록 | +| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | 포트 객체 | +| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | 최소 포트 범위 | +| rules.port.maxPort | Body | Number | 최대 포트 범위 | +| rules.cidr | Body | String | CIDR | +| rules.createdYmdt | Body | DateTime | 생성 일시 | +| rules.updatedYmdt | Body | DateTime | 수정 일시 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3713,7 +3813,17 @@ DELETE /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -3722,10 +3832,43 @@ DELETE /v4.0/backups/{backupId} --- -### 백업 단건 조회 +### DB 보안 그룹 수정하기 ```http -GET /v4.0/backups/{backupId} +PUT /v4.0/db-security-groups/{dbSecurityGroupId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" +} +``` + +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 규칙 삭제하기 + +```http +DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 @@ -3734,30 +3877,14 @@ GET /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | String | 백업의 식별자 | -| backup.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | -| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | -| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| backup.dbVersion | Body | Enum | DB 엔진 버전 | -| backup.utilVersion | Body | String | 유틸리티 버전 | -| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | -| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | -| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | -| backup.backupSize | Body | Number | 백업의 크기(Byte) | -| backup.isReplicable | Body | Boolean | 복제 가능 여부 | -| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | -| backup.createdYmdt | Body | DateTime | 생성 일시 | -| backup.updatedYmdt | Body | DateTime | 수정 일시 | +| jobId | Body | String | 작업의 식별자 |
예시

@@ -3769,26 +3896,7 @@ GET /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "backup": { - "backupId": "backupId-example", - "regionCode": "KR1", - "backupName": "backupName-example", - "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", - "utilVersion": "utilVersion-example", - "backupType": "AUTO", - "backupMethodType": "FULL", - "backupFileType": "XBSTREAM", - "backupSize": 1, - "isReplicable": false, - "binLogFileName": "binLogFileName-example", - "binLogPosition": { - }, - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } + "jobId": "jobId-example" } ``` @@ -3797,33 +3905,40 @@ GET /v4.0/backups/{backupId} --- -### 백업 내보내기 +### DB 보안 그룹 규칙 생성하기 ```http -POST /v4.0/backups/{backupId}/export +POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | -| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "tenantId": "tenantId-example", - "username": "username-example", - "password": "password-example", - "targetContainer": "targetContainer-example", - "objectPath": "objectPath-example" + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3834,7 +3949,7 @@ POST /v4.0/backups/{backupId}/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -3846,7 +3961,7 @@ POST /v4.0/backups/{backupId}/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "jobId": "jobId-example" } ``` @@ -3855,103 +3970,41 @@ POST /v4.0/backups/{backupId}/export --- -### 백업 복원하기 +### DB 보안 그룹 규칙 수정하기 ```http -POST /v4.0/backups/{backupId}/restore -``` - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| backupId | URL | UUID | O | | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | -| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | -| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | -| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | -| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | - -#### 고가용성 사용 시 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +``` -#### 스토리지 자동 확장 사용 시 +#### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "dbInstanceName": "dbInstanceName", - "description": "description-example", - "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbPort": 1, - "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbSecurityGroupIds": [], - "userGroupIds": [], - "useHighAvailability": false, - "pingInterval": 3, - "useDefaultNotification": false, - "useDeletionProtection": false, - "useSlowQueryAnalysis": true, - "network": { - "subnetId": "550e8400-e29b-41d4-a716-446655440000", - "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" - }, - "storage": { - "storageType": "ENUM_VALUE", - "storageSize": 20, - "storageAutoscale": { - "useStorageAutoscale": false - } + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 }, - "backup": { - "backupPeriod": 0, - "backupRetryCount": 0, - "ftwrlWaitTimeout": 0, - "replicationRegion": "KR1", - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -3962,7 +4015,7 @@ POST /v4.0/backups/{backupId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| jobId | Body | String | 작업의 식별자 |

예시

@@ -3974,7 +4027,7 @@ POST /v4.0/backups/{backupId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "550e8400-e29b-41d4-a716-446655440000" + "jobId": "jobId-example" } ``` @@ -3983,12 +4036,12 @@ POST /v4.0/backups/{backupId}/restore --- -## 사용자 그룹 +## 파라미터 그룹 -### 사용자 그룹 목록 보기 +### 파라미터 그룹 목록 보기 ```http -GET /v4.0/user-groups +GET /v4.0/parameter-groups ``` #### 요청 @@ -3999,12 +4052,16 @@ GET /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시 | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| totalCounts | Body | Number | 전체 파라미터 그룹 수 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4017,7 +4074,7 @@ GET /v4.0/user-groups "isSuccessful": true }, "totalCounts": 1, - "userGroups": [ + "parameterGroups": [ { "updatedYmdt": "2023-12-31T15:00:00+09:00" } @@ -4030,28 +4087,28 @@ GET /v4.0/user-groups --- -### 사용자 그룹 생성하기 +### 파라미터 그룹 생성하기 ```http -POST /v4.0/user-groups +POST /v4.0/parameter-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAll": false + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" } ``` @@ -4062,7 +4119,7 @@ POST /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |

예시

@@ -4074,7 +4131,7 @@ POST /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4083,10 +4140,10 @@ POST /v4.0/user-groups --- -### 사용자 그룹 삭제하기 +### 파라미터 그룹 삭제하기 ```http -DELETE /v4.0/user-groups/{userGroupId} +DELETE /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -4095,7 +4152,7 @@ DELETE /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -4103,10 +4160,10 @@ DELETE /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 상세 보기 +### 파라미터 그룹 상세 보기 ```http -GET /v4.0/user-groups/{userGroupId} +GET /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 @@ -4115,17 +4172,27 @@ GET /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4139,12 +4206,14 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", - "userGroupName": "userGroupName-example", - "userGroupTypeCode": "ENTIRE", - "members": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "memberId": "memberId-example" + "applyType": "BOTH" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4157,29 +4226,27 @@ GET /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 수정하기 +### 파라미터 그룹 수정하기 ```http -PUT /v4.0/user-groups/{userGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId} ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| userGroupId | URL | UUID | O | | -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` |

예시

```json { - "userGroupName": "userGroupName-example", - "memberIds": [], - "selectAll": false + "parameterGroupName": "parameterGroupName", + "description": "description-example" } ``` @@ -4192,30 +4259,38 @@ PUT /v4.0/user-groups/{userGroupId} --- -## 알림 그룹 - -### 알림 그룹 목록 보기 +### 파라미터 그룹 복사하기 ```http -GET /v4.0/notification-groups +POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -4227,11 +4302,7 @@ GET /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4240,34 +4311,31 @@ GET /v4.0/notification-groups --- -### 알림 그룹 생성하기 +### 파라미터 수정하기 ```http -POST /v4.0/notification-groups +PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "notificationGroupName": "notificationGroupName", - "notifyEmail": true, - "notifySms": true, - "isEnabled": true, - "dbInstanceIds": [], - "userGroupIds": [] + "modifiedParameters": [ + { + "value": "value-example" + } + ] } ``` @@ -4276,33 +4344,14 @@ POST /v4.0/notification-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | - -

예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "notificationGroupId": "notificationGroupId-example" -} -``` - -

-
+이 API는 응답 본문을 반환하지 않습니다. --- -### 알림 그룹 삭제하기 +### 파라미터 그룹 재설정하기 ```http -DELETE /v4.0/notification-groups/{notificationGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` #### 요청 @@ -4311,7 +4360,7 @@ DELETE /v4.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | +| parameterGroupId | URL | UUID | O | | #### 응답 @@ -4319,37 +4368,28 @@ DELETE /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 상세 보기 +## 사용자 그룹 + +### 사용자 그룹 목록 보기 ```http -GET /v4.0/notification-groups/{notificationGroupId} +GET /v4.0/user-groups ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | | userGroups | Body | Array | 사용자 그룹 목록 | | userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4361,23 +4401,12 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstances": [ - { - "dbInstanceName": "dbInstanceName-example" - } - ], + "totalCounts": 1, "userGroups": [ { - "userGroupName": "userGroupName-example" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4386,35 +4415,28 @@ GET /v4.0/notification-groups/{notificationGroupId} --- -### 알림 그룹 수정하기 +### 사용자 그룹 생성하기 ```http -PUT /v4.0/notification-groups/{notificationGroupId} +POST /v4.0/user-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| notificationGroupId | URL | UUID | O | | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "notificationGroupName": "notificationGroupName-example", - "notifyEmail": false, - "notifySms": false, - "isEnabled": false, - "dbInstanceIds": [], - "userGroupIds": [] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ``` @@ -4423,42 +4445,74 @@ PUT /v4.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "userGroupId": "userGroupId-example" +} +``` + +

+
--- -## 이벤트 +### 사용자 그룹 삭제하기 -### 이벤트 카테고리 +```http +DELETE /v4.0/user-groups/{userGroupId} +``` -이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. +#### 요청 -| 이벤트 카테고리 | 설명 | -|-------------|---------| -| ALL | 전체 | -| BACKUP | 백업 | -| DB_INSTANCE | DB 인스턴스 | -| JOB | 작업 | -| TENANT | 테넌트 | -| MONITORING | 모니터링 | +이 API는 요청 본문을 요구하지 않습니다. -### 구독 가능한 이벤트 코드 목록 보기 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 ```http -GET /v4.0/event-codes +GET /v4.0/user-groups/{userGroupId} ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4470,11 +4524,16 @@ GET /v4.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "eventCategoryType": "ALL" + "memberId": "memberId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4483,61 +4542,47 @@ GET /v4.0/event-codes --- -### 이벤트 목록 조회 +### 사용자 그룹 수정하기 ```http -GET /v4.0/events +PUT /v4.0/user-groups/{userGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메세지 목록 | -| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | -| events.messages.message | Body | String | 이벤트 메세지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "events": [ - { - "eventYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -## 이벤트 구독 +## 알림 그룹 -### 이벤트 구독 목록 조회 +### 알림 그룹 목록 보기 ```http -GET /v4.0/event-subscriptions +GET /v4.0/notification-groups ``` #### 요청 @@ -4548,20 +4593,14 @@ GET /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4573,10 +4612,9 @@ GET /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "eventSubscriptions": [ + "notificationGroups": [ { - "createdYmdt": "2023-12-31T15:00:00+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -4587,43 +4625,33 @@ GET /v4.0/event-subscriptions --- -### 이벤트 구독 생성하기 +### 알림 그룹 생성하기 ```http -POST /v4.0/event-subscriptions +POST /v4.0/notification-groups ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | - -

예시 -

- -```json -{ - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | + +

예시 +

+ +```json +{ + "notificationGroupName": "notificationGroupName", + "notifyEmail": true, + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], "userGroupIds": [] } ``` @@ -4635,7 +4663,7 @@ POST /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -4647,7 +4675,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "notificationGroupId": "notificationGroupId-example" } ``` @@ -4656,10 +4684,10 @@ POST /v4.0/event-subscriptions --- -### 이벤트 구독 삭제하기 +### 알림 그룹 삭제하기 ```http -DELETE /v4.0/event-subscriptions/{eventSubscriptionId} +DELETE /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -4668,58 +4696,7 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | - -#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - ---- - -### 이벤트 구독 수정하기 - -```http -PUT /v4.0/event-subscriptions/{eventSubscriptionId} -``` - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| eventSubscriptionId | URL | UUID | O | | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | - -

예시 -

- -```json -{ - "eventCategoryType": "ALL", - "eventSubscriptionName": "eventSubscriptionName-example", - "enabled": false, - "notifyEmail": false, - "notifySms": false, - "eventCodes": [], - "sources": [ - { - "eventCategoryType": "ALL" - } - ], - "userGroupIds": [] -} -``` - -

-
+| notificationGroupId | URL | UUID | O | | #### 응답 @@ -4727,29 +4704,10 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} --- -## 작업 정보 - -### 작업 상태 - -| 상태명 | 설명 | -|--------------------|----------------------| -| `PREPARING` | 작업이 준비 중인 경우 | -| `READY` | 작업이 준비 완료된 경우 | -| `RUNNING` | 작업이 진행 중인 경우 | -| `COMPLETED` | 작업이 완료된 경우 | -| `REGISTERED` | 작업이 등록된 경우 | -| `WAIT_TO_REGISTER` | 작업 등록 대기 중인 경우 | -| `INTERRUPTED` | 작업 진행 중 인터럽트가 발생한 경우 | -| `CANCELED` | 작업이 취소된 경우 | -| `FAILED` | 작업이 실패한 경우 | -| `ERROR` | 작업 진행 중 오류가 발생한 경우 | -| `DELETED` | 작업이 삭제된 경우 | -| `FAIL_TO_READY` | 작업 준비에 실패한 경우 | - -### 작업 정보 상세 보기 +### 알림 그룹 상세 보기 ```http -GET /v4.0/jobs/{jobId} +GET /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 @@ -4758,17 +4716,23 @@ GET /v4.0/jobs/{jobId} | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| jobId | URL | UUID | O | | +| notificationGroupId | URL | UUID | O | | #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4782,11 +4746,19 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", - "jobStatus": "DELETED", - "resourceRelations": [ + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ { - "resourceId": "resourceId-example" + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4799,90 +4771,82 @@ GET /v4.0/jobs/{jobId} --- -## 파라미터 그룹 - -### 파라미터 그룹 목록 보기 +### 알림 그룹 수정하기 ```http -GET /v4.0/parameter-groups +PUT /v4.0/notification-groups/{notificationGroupId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| totalCounts | Body | Number | 전체 파라미터 그룹 수 | -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "totalCounts": 1, - "parameterGroups": [ - { - "updatedYmdt": "2023-12-31T15:00:00+09:00" - } - ] + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 파라미터 그룹 생성하기 +## 모니터링 + +### 통계 정보 조회 ```http -POST /v4.0/parameter-groups +GET /v4.0/metric-statistics ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +이 API는 요청 본문을 요구하지 않습니다. -
예시 -

+#### 응답 -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example", - "dbVersion": "ENUM_VALUE" -} +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### Metric 목록 보기 + +```http +GET /v4.0/metrics ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

@@ -4894,7 +4858,11 @@ POST /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "metrics": [ + { + "unit": "unit-example" + } + ] } ``` @@ -4903,61 +4871,38 @@ POST /v4.0/parameter-groups --- -### 파라미터 그룹 삭제하기 - -```http -DELETE /v4.0/parameter-groups/{parameterGroupId} -``` - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +## 이벤트 -#### 응답 +### 이벤트 카테고리 -이 API는 응답 본문을 반환하지 않습니다. +이벤트는 카테고리로 분류할 수 있으며 아래와 같습니다. ---- +| 이벤트 카테고리 | 설명 | +|-------------|---------| +| ALL | 전체 | +| BACKUP | 백업 | +| DB_INSTANCE | DB 인스턴스 | +| JOB | 작업 | +| TENANT | 테넌트 | +| MONITORING | 모니터링 | -### 파라미터 그룹 상세 보기 +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/event-codes ``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | - #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | -| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | -| createdYmdt | Body | DateTime | 생성 일시 | -| updatedYmdt | Body | DateTime | 수정 일시 | +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |

예시

@@ -4969,18 +4914,11 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", - "parameterGroupName": "parameterGroupName-example", - "description": "description-example", - "dbVersion": "ENUM_VALUE", - "parameterGroupStatus": "STABLE", - "parameters": [ + "eventCodes": [ { - "applyType": "BOTH" + "eventCategoryType": "ALL" } - ], - "createdYmdt": "2023-12-31T15:00:00+09:00", - "updatedYmdt": "2023-12-31T15:00:00+09:00" + ] } ``` @@ -4989,71 +4927,85 @@ GET /v4.0/parameter-groups/{parameterGroupId} --- -### 파라미터 그룹 수정하기 +### 이벤트 목록 조회 ```http -PUT /v4.0/parameter-groups/{parameterGroupId} +GET /v4.0/events ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

```json { - "parameterGroupName": "parameterGroupName", - "description": "description-example" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "events": [ + { + "eventYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -이 API는 응답 본문을 반환하지 않습니다. - --- -### 파라미터 그룹 복사하기 +## 이벤트 구독 + +### 이벤트 구독 목록 조회 ```http -POST /v4.0/parameter-groups/{parameterGroupId}/copy +GET /v4.0/event-subscriptions ``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | - -
예시 -

- -```json -{ - "parameterGroupName": "parameterGroupName", - "description": "description-example" -} -``` - -

-
+이 API는 요청 본문을 요구하지 않습니다. #### 응답 | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -5065,7 +5017,12 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "totalCounts": 1, + "eventSubscriptions": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -5074,31 +5031,44 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy --- -### 파라미터 수정하기 +### 이벤트 구독 생성하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/parameters +POST /v4.0/event-subscriptions ``` #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "modifiedParameters": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "value": "value-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ``` @@ -5107,14 +5077,33 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | + +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "eventSubscriptionId": "eventSubscriptionId-example" +} +``` + +

+
--- -### 파라미터 그룹 재설정하기 +### 이벤트 구독 삭제하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/reset +DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 @@ -5123,7 +5112,7 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset | 이름 | 종류 | 형식 | 필수 | 설명 | |-----|-----|-----|-----|-----| -| parameterGroupId | URL | UUID | O | | +| eventSubscriptionId | URL | UUID | O | | #### 응답 @@ -5131,55 +5120,63 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset --- -## 프로젝트 정보 - -### 프로젝트 멤버 목록 보기 +### 이벤트 구독 수정하기 ```http -GET /v4.0/project/members +PUT /v4.0/event-subscriptions/{eventSubscriptionId} ``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-----|-----|-----|-----| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "members": [ + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ { - "phoneNumber": "phoneNumber-example" + "eventCategoryType": "ALL" } - ] + ], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 리전 목록 보기 +## 가용성 영역 + +### 가용성 영역 목록 보기 ```http -GET /v4.0/project/regions +GET /v4.0/availability-zones ``` #### 요청 @@ -5190,9 +5187,10 @@ GET /v4.0/project/regions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| availabilityZones | Body | Array | 가용성 영역 목록 | +| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | +| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | +| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 |
예시

@@ -5204,9 +5202,11 @@ GET /v4.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ + "availabilityZones": [ { - "isEnabled": false + "zoneState": { + "available": false + } } ] } From 196b4fe5ea123f456b36b14dbef40dd75d2efa0e Mon Sep 17 00:00:00 2001 From: hyungmin-oh Date: Tue, 2 Jun 2026 15:46:06 +0900 Subject: [PATCH 3/7] =?UTF-8?q?docs(mariadb):=20API=20=EA=B0=80=EC=9D=B4?= =?UTF-8?q?=EB=93=9C=20v4.0=20=EC=84=B9=EC=85=98=20=EC=88=9C=EC=84=9C=20?= =?UTF-8?q?=EB=B3=B4=EC=99=84=20=EB=B0=8F=20build.js=20exclusion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - RDS/mariadb/ko/api-guide-v4.0(.gov) 섹션 순서·백업 복제 리전(KR1) 정합화 - build.js mariadb config exclusionDocs에 api-guide-v4.0 추가(생성기 산출물 보존) --- build.js | 4 +- mariadb/ko/api-guide-v4.0-gov.md | 5495 +++++++++++++++--------------- mariadb/ko/api-guide-v4.0.md | 5495 +++++++++++++++--------------- 3 files changed, 5366 insertions(+), 5628 deletions(-) diff --git a/build.js b/build.js index 3c5b142a..b3e069f2 100644 --- a/build.js +++ b/build.js @@ -65,12 +65,12 @@ const allConfigs = [ { engine: 'mariadb', env: 'public', - exclusionDocs: [] + exclusionDocs: ['api-guide-v4.0'] }, { engine: 'mariadb', env: 'gov', - exclusionDocs: [] + exclusionDocs: ['api-guide-v4.0'] } ]; diff --git a/mariadb/ko/api-guide-v4.0-gov.md b/mariadb/ko/api-guide-v4.0-gov.md index 6bdd3be3..01609a18 100644 --- a/mariadb/ko/api-guide-v4.0-gov.md +++ b/mariadb/ko/api-guide-v4.0-gov.md @@ -2,36 +2,29 @@ ## RDS for MariaDB API 공통 정보 -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|-----------|-----------------------------------------------| -| 한국(판교) 리전 | https://kr1-rds-mariadb.api.gov-nhncloudservice.com | - ### 인증 및 권한 RDS for MariaDB은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. 발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|--------|--------|----|-------------------------------------------------------------| -| X-TC-APP-KEY | Header | String | O | RDS for MariaDB 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| X-TC-APP-KEY | Header | String | O | RDS for MariaDB 서비스의 Appkey 또는 프로젝트 통합 Appkey | +| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MariaDB ADMIN`, `RDS for MariaDB VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. -또한 프로젝트 멤버 역할에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MariaDB ADMIN`, `RDS for MariaDB VIEWER`로 구분하여 권한을 부여할 수 있습니다. - -* `RDS for MariaDB ADMIN` 권한은 모든 기능을 사용 가능합니다. -* `RDS for MariaDB VIEWER` 권한은 정보를 조회하는 기능만 사용 가능합니다. +* `RDS for MariaDB ADMIN` 역할은 API 실행에 필요한 모든 권한이 부여됩니다. +* `RDS for MariaDB VIEWER` 역할은 정보를 조회하는 권한만 부여됩니다. * DB 인스턴스를 생성, 수정, 삭제하거나, DB 인스턴스를 대상으로 하는 어떠한 기능도 사용할 수 없습니다. - * 단, 알림 그룹 및 사용자 그룹 관련 기능은 사용 가능합니다. + * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용할 수 있습니다. API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같은 오류가 발생합니다. -| resultCode | resultMessage | 설명 | -|------------|---------------|-------------| -| 80401 | Unauthorized | 인증에 실패했습니다. | -| 80403 | Forbidden | 권한이 없습니다. | +| resultCode | resultMessage | 설명 | +|------------|---------------|-----| +| 80401 | Unauthorized | 인증에 실패했습니다. | +| 80403 | Forbidden | 권한이 없습니다. | ### 응답 공통 정보 @@ -49,55 +42,60 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 ``` #### 필드 -| 이름 | 형식 | 설명 | -|---------------|---------|-----------------------------------------| -| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | -| resultMessage | String | 결과 메시지 | -| isSuccessful | Boolean | 성공 여부 | +| 이름 | 형식 | 설명 | +|-----|-----|-----| +| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | +| resultMessage | String | 결과 메시지 | +| isSuccessful | Boolean | 성공 여부 | + +### API 엔드포인트 +| 리전 | 엔드포인트 | +|------|----------| +| 한국(판교) 리전 | https://kr1-rds-mariadb.api.gov-nhncloudservice.com | ### DB 엔진 유형 -| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | -|-----------------|----------|------------------|--| -| MARIADB_V10330 | O | O | NATIVE, ED25519 | -| MARIADB_V10611 | O | O | NATIVE, ED25519 | -| MARIADB_V10612 | O | O | NATIVE, ED25519 | -| MARIADB_V10616 | O | O | NATIVE, ED25519 | -| MARIADB_V10622 | O | O | NATIVE, ED25519 | -| MARIADB_V101107 | O | O | NATIVE, ED25519 | -| MARIADB_V101108 | O | O | NATIVE, ED25519 | -| MARIADB_V101113 | O | O | NATIVE, ED25519 | -| MARIADB_V11407 | O | O | NATIVE, ED25519 | - -* ENUM 타입의 dbVersion 필드에서 해당 값을 사용할 수 있습니다. +| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | +|------------|----------|------------------|------------| +| MARIADB_V10330 | X | X | NATIVE, ED25519 | +| MARIADB_V10611 | X | X | NATIVE, ED25519 | +| MARIADB_V10612 | X | X | NATIVE, ED25519 | +| MARIADB_V10616 | X | X | NATIVE, ED25519 | +| MARIADB_V10622 | X | X | NATIVE, ED25519 | +| MARIADB_V10625 | X | X | NATIVE, ED25519 | +| MARIADB_V101107 | O | O | NATIVE, ED25519 | +| MARIADB_V101108 | O | O | NATIVE, ED25519 | +| MARIADB_V101113 | O | O | NATIVE, ED25519 | +| MARIADB_V101116 | O | O | NATIVE, ED25519 | +| MARIADB_V11407 | O | O | NATIVE, ED25519 | +| MARIADB_V11410 | O | O | NATIVE, ED25519 | +| MARIADB_V11806 | O | O | NATIVE, ED25519 | + +* ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. ## 프로젝트 정보 -### 리전 목록 보기 +### 프로젝트 멤버 목록 보기 ```http -GET /v4.0/project/regions +GET /v4.0/project/members ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMariaDB:Project.Get | 프로젝트 정보 조회 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------|------|---------|----------------------------------------------------------------------------| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- `KR1`: 한국(판교) 리전 | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |

예시

@@ -109,44 +107,36 @@ GET /v4.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ + "members": [ { - "regionCode": "KR1", - "isEnabled": true + "phoneNumber": "phoneNumber-example" } ] } ``` +

--- -### 프로젝트 멤버 목록 보기 +### 리전 목록 보기 ```http -GET /v4.0/project/members +GET /v4.0/project/regions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMariaDB:Project.Get | 프로젝트 정보 조회 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|--------|-----------------| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |
예시

@@ -158,12 +148,9 @@ GET /v4.0/project/members "resultMessage": "SUCCESS", "isSuccessful": true }, - "members": [ + "regions": [ { - "memberId": "1b1d3627-507a-49ea-8cb7-c86dfa9caa58", - "memberName": "홍길동", - "emailAddress": "gildong.hong@nhn.com", - "phoneNumber": "+821012345678" + "isEnabled": false } ] } @@ -182,25 +169,19 @@ GET /v4.0/project/members GET /v4.0/db-flavors ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|------------------| -| RDSforMariaDB:DbFlavor.List | DB 인스턴스 사양 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |

예시

@@ -214,9 +195,6 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbFlavorName": "m2.c1m2", - "ram": 2048, "vcpus": 1 } ] @@ -236,26 +214,20 @@ GET /v4.0/db-flavors GET /v4.0/network/subnets ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------|-----------| -| RDSforMariaDB:Network.List | 서브넷 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|---------|------------------| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | UUID | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |

예시

@@ -269,11 +241,7 @@ GET /v4.0/network/subnets }, "subnets": [ { - "subnetId": "1b2a9b23-0725-4b92-8c78-35db66b8ad9f", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/24", - "usingGateway": true, - "availableIpCount": 240 + "availableIpCount": 1 } ] } @@ -292,23 +260,17 @@ GET /v4.0/network/subnets GET /v4.0/db-versions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|-------------| -| RDSforMariaDB:DbVersion.List | DB 엔진 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|---------|-----------------------| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | | dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |

예시 @@ -323,9 +285,7 @@ GET /v4.0/db-versions }, "dbVersions": [ { - "dbVersion": "MARIADB_V10330", - "dbVersionName": "Maria DB 10.3.30", - "restorableFromObs": true + "restorableFromObs": false } ] } @@ -338,27 +298,21 @@ GET /v4.0/db-versions ## 데이터 스토리지 -### 데이터 스토리지 타입 목록 보기 +### 스토리지 타입 목록 보기 ```http GET /v4.0/storage-types ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------|-------------------| -| RDSforMariaDB:Storage.List | 데이터 스토리지 타입 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|-------|----------------| -| storageTypes | Body | Array | 데이터 스토리지 타입 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |
예시

@@ -370,10 +324,7 @@ GET /v4.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [ - "General SSD", - "General HDD" - ] + "storageTypes": [] } ``` @@ -407,31 +358,25 @@ GET /v4.0/storage-types GET /v4.0/jobs/{jobId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------|-------------| -| RDSforMariaDB:Job.Get | 작업 정보 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------|-----|------|----|---------| -| jobId | URL | UUID | O | 작업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------|------|----------|-----------------------------------| -| jobId | Body | UUID | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태 | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | Enum | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | UUID | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -443,16 +388,15 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "0ddb042c-5af6-43fb-a914-f4dd0540eb7c", - "jobStatus": "RUNNING", + "jobId": "jobId-example", + "jobStatus": "DELETED", "resourceRelations": [ { - "resourceType": "DB_INSTANCE", - "resourceId": "56b39dcf-65eb-47ec-9d4f-09f160ba2266" + "resourceId": "resourceId-example" } ], - "createdYmdt": "2023-02-22T20:47:12+09:00", - "updatedYmdt": "2023-02-22T20:49:46+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -469,25 +413,19 @@ GET /v4.0/jobs/{jobId} GET /v4.0/db-instance-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|------------------| -| RDSforMariaDB:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------|------|----------|--------------------------------------------------------------------------| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -501,10 +439,7 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "05de0746-89fd-49c8-94f9-9c5b1df97009", - "replicationType": "STANDALONE", - "createdYmdt": "2023-02-13T17:35:20+09:00", - "updatedYmdt": "2023-02-13T17:35:20+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -521,32 +456,26 @@ GET /v4.0/db-instance-groups GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|------------------| -| RDSforMariaDB:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|-----------------| -| dbInstanceGroupId | URL | UUID | O | DB 인스턴스 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -558,17 +487,15 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "36617a8e-0df8-4b16-b6ea-6306019e95da", + "dbInstanceGroupId": "dbInstanceGroupId-example", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "6d2db0ef-fe9b-4ed4-97b1-d97fcb4cf1b8", - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE" + "dbInstanceStatus": "BEFORE_CREATE" } ], - "createdYmdt": "2023-03-03T17:38:14+09:00", - "updatedYmdt": "2023-03-03T17:38:14+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -601,8 +528,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `BACKING_UP` | 백업 중 | | `CANCELING` | 취소 중 | | `CREATING` | 생성 중 | -| `CREATING_SCHEMA` | DB 스키마 생성 중 | -| `CREATING_USER` | 사용자 생성 중 | +| `CREATING_SCHEMA` | DB 스키마 생성 중 | +| `CREATING_USER` | 사용자 생성 중 | | `DELETING` | 삭제 중 | | `DELETING_SCHEMA` | DB 스키마 삭제 중 | | `DELETING_USER` | 사용자 삭제 중 | @@ -621,8 +548,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `STARTING` | 시작 중 | | `STOPPING` | 정지 중 | | `SYNCING_SCHEMA` | DB 스키마 동기화 중 | -| `SYNCING_USER` | 사용자 동기화 중 | -| `UPDATING_USER` | 사용자 수정 중 | +| `SYNCING_USER` | 사용자 동기화 중 | +| `UPDATING_USER` | 사용자 수정 중 | ### DB 인스턴스 목록 보기 @@ -630,32 +557,26 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.List | DB 인스턴스 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | -| dbInstances.dbPort | Body | Number | DB 포트 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태 | -| dbInstances.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstances.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstances | Body | Array | DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | +| dbInstances.dbPort | Body | Number | DB 포트 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbInstances.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstances.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -669,17 +590,7 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MARIADB_V10330", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "createdYmdt": "2023-01-23T12:03:13+09:00", - "updatedYmdt": "2023-02-02T17:20:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -690,51 +601,123 @@ GET /v4.0/db-instances --- -### DB 인스턴스 상세 보기 +### DB 인스턴스 생성하기 ```http -GET /v4.0/db-instances/{dbInstanceId} +POST /v4.0/db-instances ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.Get | DB 인스턴스 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| authenticationPlugin | Body | Enum | X | 인증 Plugin
- NATIVE: `mysql_native_password 인증`
- ED25519: `ed25519 인증 (MariaDB 전용)` | +| tlsOption | Body | Enum | X | TLS Option
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE", + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| dbPort | Body | Number | DB 포트 | -| dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| progressStatus | Body | Enum | DB 인스턴스의 현재 작업 진행 상태 | -| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | -| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | -| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | -| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | -| supportAuthenticationPlugin | Body | Boolean | 인증 플러그인 지원 여부 | -| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | -| needMigration | Body | Boolean | 마이그레이션 필요 여부 | -| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -746,27 +729,7 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MARIADB_V10330", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "dbFlavorId": "e9ed4ef6-78d7-46fa-ace9-32481e97f3b7", - "parameterGroupId": "b03e8b13-de27-4d04-a488-ff5689589372", - "dbSecurityGroupIds": ["01908c35-d2c9-4852-baf0-17f06ec42c03"], - "notificationGroupIds": ["83a62a33-ddbf-4a04-8653-e54463d5b1ac"], - "useDeletionProtection": false, - "useSlowQueryAnalysis": true, - "supportAuthenticationPlugin": true, - "needToApplyParameterGroup": false, - "needMigration": false, - "supportDbVersionUpgrade": true, - "createdYmdt": "2022-11-23T12:03:13+09:00", - "updatedYmdt": "2022-12-02T17:20:17+09:00" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -775,95 +738,117 @@ GET /v4.0/db-instances/{dbInstanceId} --- -### DB 인스턴스 생성하기 +### 오브젝트 스토리지를 이용한 DB 인스턴스 복원 ```http -POST /v4.0/db-instances +POST /v4.0/db-instances/restore-from-obs ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Create | DB 인스턴스 생성하기 | - -#### 요청 +#### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|-------|---------|----|---------------------------------------------------------------------| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbUserName | Body | String | O | DB 사용자 계정명 | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- 기본값: `NATIVE`(미지원 시 `ED25519`)
- NATIVE: `mysql_native_password`
- ED25519: `auth_ed25519` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | +| restore.username | Body | String | O | NHN Cloud 계정 혹은 IAM 멤버 ID | +| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | +| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | +| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbVersion": "MARIADB_V10330", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "dbVersion": "ENUM_VALUE", + "useHighAvailability": false, + "pingInterval": 3, "storage": { - "storageType": "General SSD", - "storageSize": 20 + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" }, "backup": { - "backupPeriod": 1, + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": true, "backupSchedules": [ { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR" + "backupWndDuration": "HALF_AN_HOUR" } ] - } + }, + "restore": { + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" + }, + "useDefaultNotification": false, + "useSlowQueryAnalysis": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false } ``` @@ -872,64 +857,27 @@ POST /v4.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### DB 인스턴스 수정하기 - -```http -PUT /v4.0/db-instances/{dbInstanceId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Modify | DB 인스턴스 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|---------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbPort | Body | Number | X | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| useReadOnly | Body | Boolean | X | 읽기 전용으로 변경 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -

예시

```json { - "dbInstanceName": "db-instance2", - "description": "description2", - "dbPort": 10001, - "dbSecurityGroupIds": [], - "executeBackup": true + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- ### DB 인스턴스 삭제하기 @@ -938,81 +886,89 @@ PUT /v4.0/db-instances/{dbInstanceId} DELETE /v4.0/db-instances/{dbInstanceId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Delete | DB 인스턴스 삭제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| deleteAutoBackup | Body | Boolean | X | 자동 백업 삭제 여부
- 기본값: `false` | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| deleteAutoBackup | Body | Boolean | X | 자동 백업 삭제 여부
- 기본값: `false` | -### DB 인스턴스 재시작하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/restart +```json +{ + "deleteAutoBackup": false +} ``` -#### 필요 권한 +

+
-| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.Restart | DB 인스턴스 재시작하기 | +#### 응답 -#### 요청 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| useReadOnly | Body | Boolean | X | 읽기 전용으로 변경 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +
예시 +

-#### 응답 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### DB 인스턴스 강제 재시작하기 + +### DB 인스턴스 상세 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/force-restart +GET /v4.0/db-instances/{dbInstanceId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|------------------| -| RDSforMariaDB:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| dbPort | Body | Number | DB 포트 | +| dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | +| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | +| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | +| supportAuthenticationPlugin | Body | Boolean | 인증 plugin 지원 여부 | +| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | +| needMigration | Body | Boolean | 마이그레이션 필요 여부 | +| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -1023,329 +979,333 @@ POST /v4.0/db-instances/{dbInstanceId}/force-restart "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "dbFlavorId": "dbFlavorId-example", + "parameterGroupId": "parameterGroupId-example", + "dbSecurityGroupIds": [], + "notificationGroupIds": [], + "useDeletionProtection": false, + "useSlowQueryAnalysis": false, + "supportAuthenticationPlugin": false, + "needToApplyParameterGroup": false, + "needMigration": false, + "supportDbVersionUpgrade": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

- --- -### DB 인스턴스 시작하기 +### DB 인스턴스 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/start +PUT /v4.0/db-instances/{dbInstanceId} ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Start | DB 인스턴스 시작하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbVersion | Body | Enum | X | DB 엔진 버전 코드 | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | +| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
- 기본값: `false` | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbPort": 1, + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "useSlowQueryAnalysis": false, + "useDummy": false, + "dbSecurityGroupIds": [], + "executeBackup": false, + "useOnlineFailover": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### DB 인스턴스 정지하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/stop +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Stop | DB 인스턴스 정지하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### DB 인스턴스 복제하기 +### 백업 정보 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/replicate +GET /v4.0/db-instances/{dbInstanceId}/backup-info ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. -| 권한명 | 설명 | -|--------------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Replicate | DB 인스턴스 복제하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록
- 기본값: 원본 DB 인스턴스 값 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: 원본 DB 인스턴스 값 | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 기본값: 원본 DB 인스턴스 값
- 예시: `General SSD` | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `10` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00`
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간
- 기본값: 원본 DB 인스턴스 값 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backupPeriod | Body | Number | 백업 보관 기간(일) | +| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | +| backupRetryCount | Body | Number | 백업 재시도 횟수 | +| replicationRegion | Body | Enum | 백업 복제 리전
- KR1: `한국(판교)` | +| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration
- HALF_AN_HOUR
- ONE_HOUR
- ONE_HOUR_AND_HALF
- TWO_HOURS
- TWO_HOURS_AND_HALF
- THREE_HOURS |
예시

```json { - "dbInstanceName": "db-instance-replicate", - "description": "description", - "dbPort": 11000, - "network": { - "availabilityZone": "kr-pub-a" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "storage": { - "stroageSize": 100 - } + "backupPeriod": 1, + "ftwrlWaitTimeout": 1, + "backupRetryCount": 1, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 승격하기 +### 백업 정보 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/promote +PUT /v4.0/db-instances/{dbInstanceId}/backup-info ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Promote | DB 인스턴스 승격하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "backupPeriod": 0, + "ftwrlWaitTimeout": 0, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 재구축하기 +### 바이너리 로그 목록 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/rebuild +GET /v4.0/db-instances/{dbInstanceId}/binlogs ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.Rebuild | DB 인스턴스 재구축하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| binLogs | Body | Array | BinLog 파일 목록 | +| binLogs.binLogFileName | Body | String | BinLog 파일 이름 | +| binLogs.binLogFileSize | Body | Number | BinLog 파일 크기 (Byte) | +| binLogs.createdYmdt | Body | DateTime | 생성 일시 | -### 복원 정보 조회 +
예시 +

-```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "binLogs": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.Get | DB 인스턴스 상세 보기 | - -#### 요청 +

+
-| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +--- -#### 응답 +### 바이너리 로그 삭제 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | -| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | -| restorableBackups | Body | Array | 복원 가능한 백업 목록 | -| restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | -| restorableBackups.backup.backupName | Body | String | 백업 이름 | -| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | -| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동 | -| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- `BACKING_UP`: 백업 중인 경우
- `COMPLETED`: 백업이 완료된 경우
- `DELETING`: 백업이 삭제 중인 경우
- `DELETED`: 백업이 삭제된 경우
- `ERROR`: 오류가 발생한 경우 | -| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| restorableBackups.backup.dbVersion | Body | String | DB 엔진 유형 | -| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | -| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| restorableBackups.backup.binLogPosition | Body | Number | 바이너리 로그 파일 위치 | -| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | -| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | -| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 | +```http +POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge +``` +#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| lastBinLogFileName | Body | String | O | 삭제할 마지막 BinLog 파일 이름 (해당 파일 직전까지 삭제됨) |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "oldestRestorableYmdt": "2023-07-09T16:33:33+09:00", - "latestRestorableYmdt": "2023-07-10T15:44:44+09:00", - "restorableBackups": [ - { - "backup": { - "backupId": "145d889a-fe08-474f-8f58-bde576ff96a9", - "backupName": "example-backup-name", - "backupStatus": "COMPLETED", - "dbInstanceId": "dba1be25-9429-4589-9716-7fb6daad7cb9", - "dbInstanceName": "original-db-instance-name", - "dbVersion": "MARIADB_V10330", - "backupType": "MANUAL", - "backupSize": 8299904, - "useBackupLock": true, - "failoverCount": 0, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 367916037, - "createdYmdt": "2023-07-10T15:44:44+09:00", - "updatedYmdt": "2023-07-10T15:46:07+09:00" - }, - "restorableBinLogs": [ - "mysql-bin.000001" - ] - } - ] + "lastBinLogFileName": "mysql-bin.000010" } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 복원될 마지막 쿼리 조회 +### 인증서 파일 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query +GET /v4.0/db-instances/{dbInstanceId}/certificates ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.Get | DB 인스턴스 상세 보기 | - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|------|----|-----------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restoreType | Query | Enum | O | 복원 타입 종류
- `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
- `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입 | - -#### restoreType이 `TIMESTAMP`인 경우 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-------|----------|----|-------------------------------------------| -| restoreYmdt | Query | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +#### 요청 -#### restoreType이 `BINLOG`인 경우 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------|-------|--------|----|--------------------| -| backupId | Query | UUID | O | 복원에 사용할 백업의 식별자 | -| binLogFileName | Query | String | O | 복원에 사용할 바이너리 로그 이름 | -| binLogPosition | Query | Number | O | 복원에 사용할 바이너리 로그 위치 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|----------|--------------------------------------| -| executedYmdt | Body | DateTime | 쿼리 수행 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| lastQuery | Body | String | 마지막 수행 쿼리 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| certificates | Body | Array | 인증서 파일 목록 | +| certificates.fileName | Body | String | 인증서 파일 이름 | +| certificates.certificateType | Body | Enum | 인증서 타입
- CA_FILE
- CERT_FILE
- KEY_FILE | +| certificates.fileSize | Body | Number | 인증서 파일 크기(Byte) | +| certificates.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -1357,8 +1317,11 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query "resultMessage": "SUCCESS", "isSuccessful": true }, - "executedYmdt": "2023-03-17T14:02:29+09:00", - "lastQuery": "INSERT INTO `test`.`test`SET @1='0123'" + "certificates": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -1367,328 +1330,132 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query --- -### 복원 +### 인증서 파일 내보내기 ```http -POST /v4.0/db-instances/{dbInstanceId}/restore +POST /v4.0/db-instances/{dbInstanceId}/certificates/upload ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Restore | DB 인스턴스 복원하기 | - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restore | Body | Object | O | 복원 정보 객체 | -| restore.restoreType | Body | Enum | O | 복원 타입 종류
- `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
- `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
- `BACKUP`: 기존에 생성한 백업을 이용한 스냅숏 복원 타입 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 고가용성 사용 시 필수 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a`
- 기본값: 랜덤 선택 | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 예시: `General SSD`
- 기본값: 원본 DB 인스턴스 값 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | - -#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|----------|----|------------------------------------------------------------------------------------------------| -| restore.restoreYmdt | Body | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD)
복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. | +#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| certificateTypes | Body | Array | O | 업로드할 인증서 타입 목록 | +| tenantId | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 인증서 파일의 경로 |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "TIMESTAMP", - "restoreYmdt": "2023-07-10T15:44:44+09:00" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "certificateTypes": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

-#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------------|------|--------|----|--------------------| -| restore.backupId | Body | UUID | O | 복원에 사용할 백업의 식별자 | -| restore.binLog | Body | Object | O | 바이너리 로그 정보 객체 | -| restore.binLog.binLogFileName | Body | String | O | 복원에 사용할 바이너리 로그 이름 | -| restore.binLog.binLogPosition | Body | Number | O | 복원에 사용할 바이너리 로그 위치 | - -* 바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그를 복원할 수 있습니다. +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BINLOG", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36", - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 1234567 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) +--- + +### DB 스키마 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|------|------------------------------|-----------------| -| restore.backupId | Body | UUID | O(restoreType이 `BACKUP`인 경우) | 복원에 사용할 백업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSchemas | Body | Array | DB 스키마 목록 | +| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | +| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | +| dbSchemas.createdYmdt | Body | DateTime | 생성 일시 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BACKUP", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbSchemas": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - - --- -### 오브젝트 스토리지로부터 복원 +### DB 스키마 생성하기 ```http -POST /v4.0/db-instances/restore-from-obs +POST /v4.0/db-instances/{dbInstanceId}/db-schemas ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------------|-------------------------| -| RDSforMariaDB:DbInstance.RestoreFromObs | DB 인스턴스 오브젝트 스토리지로부터 복원 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|----------------------------------------------------------------------------------------| -| restore | Body | Object | O | 복원 정보 객체 | -| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | -| restore.username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | -| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | -| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | - - +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaName | Body | String | O | DB 스키마 이름
- 최대 길이: `64`
- 영문 시작, 영문/숫자/_ 허용, 1~64자, MySQL 예약어 불가 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbVersion": "MARIADB_V10330", - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "tenantId":"tenant-id", - "username":"username", - "password":"password", - "targetContainer":"targetContainer", - "objectPath":"objectPath" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "dbSchemaName": "dbSchemaName-example" } ``` @@ -1697,36 +1464,49 @@ POST /v4.0/db-instances/restore-from-obs #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

---- +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` +

+
+ +--- -### DB 인스턴스 삭제 보호 설정 변경하기 +### DB 스키마 삭제하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection +DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -1737,7 +1517,8 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1746,58 +1527,36 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection --- -### 고가용성 상태 - -| 상태 | 설명 | -|----------------------------------|---------------------------------| -| `CREATED` | 고가용성이 생성된 경우 | -| `STABLE` | 고가용성이 정상인 경우 | -| `PAUSING` | 고가용성이 일시 중지 중인 경우 | -| `PAUSED` | 고가용성이 일시 중지된 경우 | -| `PAUSED_DUE_TO_TASK` | 작업으로 인해 고가용성이 일시 중지된 경우 | -| `DISABLE_MASTER_IN_REPLICATION` | 마스터 비정상 복제 감지로 고가용성이 중단된 경우 | -| `DISABLE_MHA_PROCESS` | 고가용성 프로세스가 중단된 경우 | -| `DISABLE_REPLICATION_STOP` | 복제 중단으로 인해 고가용성이 중단된 경우 | -| `DISABLE_REPLICATION_DELAY` | 복제 지연으로 인해 고가용성이 중단된 경우 | -| `MASTER_FAILURE_DETECTION` | 마스터 장애가 감지된 경우 | -| `FAILOVER_STARTED` | 장애 조치가 시작된 경우 | -| `FAILOVER_FAILED` | 장애 조치가 실패한 경우 | -| `FAILOVER_COMPLETED` | 장애 조치가 완료된 경우 | -| `DELETED` | 고가용성이 삭제된 경우 | - ---- - -### 고가용성 정보 보기 +### DB 사용자 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/high-availability +GET /v4.0/db-instances/{dbInstanceId}/db-users ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|------------| -| RDSforMariaDB:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|---------|---------------------------------------------------------------------------------------------------------------------| -| useHighAvailability | Body | Boolean | 고가용성 사용 여부 | -| haStatus | Body | Enum | 고가용성 상태 | -| pingInterval | Body | Number | Ping 간격(초) | -| pingType | Body | Enum | Ping 타입
- `INSERT`
- `SELECT` | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbUsers | Body | Array | DB 사용자 목록 | +| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | +| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | +| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- STABLE
- CREATING
- UPDATING
- SYNCING
- DELETING
- DELETED | +| dbUsers.createdYmdt | Body | DateTime | 생성 일시 | +| dbUsers.updatedYmdt | Body | DateTime | 수정 일시 | +| dbUsers.authenticationPlugin | Body | Enum | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- ED25519: `ed25519 인증 (MariaDB 전용)` | +| dbUsers.tlsOption | Body | Enum | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |

예시 -

```json @@ -1807,193 +1566,249 @@ GET /v4.0/db-instances/{dbInstanceId}/high-availability "resultMessage": "SUCCESS", "isSuccessful": true }, - "useHighAvailability": true, - "haStatus": "STABLE", - "pingInterval": 3, - "pingType": "INSERT" + "dbUsers": [ + { + "tlsOption": "NONE" + } + ] } ```

-
--- -### 고가용성 수정하기 +### DB 사용자 생성하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/high-availability +POST /v4.0/db-instances/{dbInstanceId}/db-users ``` -#### 필요 권한 +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| host | Body | String | O | DB 사용자 계정의 호스트명
- 최대 길이: `45` | +| authorityType | Body | Enum | O | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- ED25519: `ed25519 인증 (MariaDB 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMariaDB:HighAvailability.Modify | 고가용성 수정하기 | +
예시 +

-#### 요청 +```json +{ + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "host": "host-example", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|---------|----|------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- `INSERT`
- `SELECT` | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 고가용성 사용 시 필수값 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 고가용성 다시 시작하기 +### DB 사용자 삭제하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume +DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------| -| RDSforMariaDB:HighAvailability.Resume | 고가용성 다시 시작하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### 고가용성 일시 중지하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} ``` -#### 필요 권한 +

+
-| 권한명 | 설명 | -|----------------------------------------------------|--------------| -| RDSforMariaDB:HighAvailability.Pause | 고가용성 일시 중지하기 | +--- -#### 요청 +### DB 사용자 수정하기 -이 API는 요청 본문을 요구하지 않습니다. +```http +PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | +| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| authorityType | Body | Enum | X | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- ED25519: `ed25519 인증 (MariaDB 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "dbPassword": "dbPassword", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 고가용성 복구하기 +### DB 인스턴스 삭제 보호 설정 변경 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair +PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMariaDB:HighAvailability.Repair | 고가용성 복구하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 고가용성 분리하기 +### DB 인스턴스 강제 재시작하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/split +POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|-----------| -| RDSforMariaDB:HighAvailability.Split | 고가용성 분리하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 데이터 스토리지 정보 보기 +### 고가용성 정보 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/storage-info +GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|---------|--------------------------------------------------------------------------------------| -| storageType | Body | Enum | 데이터 스토리지 타입 | -| storageSize | Body | Number | 데이터 스토리지 크기(GB) | -| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- `DETACHED`: 부착되지 않음
- `ATTACHED`: 부착됨
- `DELETED`: 삭제됨 | -| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | -| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | -| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| useHighAvailability | Body | Boolean | 고가용성 사용 여부
- 기본값: `false` | +| haStatus | Body | Enum | 고가용성 상태
- CREATED: `생성됨`
- STABLE: `정상`
- PAUSING: `일시 중지 중`
- DISABLE: `정지`
- DISABLE_MASTER_IN_REPLICATION: `마스터 비정상 복제 감지로 인한 고가용성 중단`
- DISABLE_MHA_PROCESS: `고가용성 프로세스 중단`
- DISABLE_REPLICATION_STOP: `복제 중단으로 인한 고가용성 중단`
- DISABLE_REPLICATION_DELAY: `복제 지연으로 인한 고가용성 중단`
- FAILOVER_STARTED: `장애 조치 시작`
- FAILOVER_FAILED: `장애 조치 실패`
- FAILOVER_COMPLETED: `장애 조치 완료`
- DELETED: `삭제됨`
- PAUSED: `일시 중지`
- PAUSED_DUE_TO_TASK: `작업으로 인한 일시 중지`
- MASTER_FAILURE_DETECTION: `마스터 장애 감지` | +| pingInterval | Body | Number | Ping 간격(초) | +| pingType | Body | String | Ping 방식 |
예시

@@ -2005,89 +1820,95 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "General SSD", - "storageSize": 20, - "storageStatus": "ATTACHED", - "storageAutoscale": { - "useStorageAutoscale": true, - "threshold": 80, - "maxStorageSize": 100, - "cooldownTime": 10 - } + "useHighAvailability": false, + "haStatus": "CREATED", + "pingInterval": 1, + "pingType": "pingType-example" } ```

- --- -### 데이터 스토리지 정보 수정하기 +### 고가용성 수정하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/storage-info +PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Modify | DB 인스턴스 수정하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -#### 요청 +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "useHighAvailability": false, + "pingInterval": 1 +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: 현재값
- 최댓값: `2048` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 백업 정보 보기 +### 고가용성 일시 중지하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/backup-info +POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|---------|----------------| -| backupPeriod | Body | Number | 백업 보관 기간(일) | -| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | -| backupRetryCount | Body | Number | 백업 재시도 횟수 | -| replicationRegion | Body | Enum | 백업 복제 리전 | -| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | -| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2099,111 +1920,73 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "backupPeriod": 1, - "ftwrlWaitTimeout": 1800, - "backupRetryCount": 0, - "replicationRegion": null, - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### 백업 정보 수정하기 +### 고가용성 복구하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/backup-info +POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Modify | DB 인스턴스 수정하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------------------------|------|---------|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "backupPeriod": 5, - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndBgnTime": "01:00:00", - "backupWndDuration": "TWO_HOURS" - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 네트워크 정보 보기 +### 고가용성 다시 시작하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/network-info +POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------------------------------------------------------------------------------------------------------------------------------| -| availabilityZone | Body | Enum | DB 인스턴스를 생성할 가용성 영역 | -| subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | UUID | 서브넷의 식별자 | -| subnet.subnetName | Body | UUID | 서브넷을 식별할 수 있는 이름 | -| subnet.subnetCidr | Body | UUID | 서브넷의 CIDR | -| endPoints | Body | Array | 접속 정보 목록 | -| endPoints.domain | Body | String | 도메인 | -| endPoints.ipAddress | Body | String | IP 주소 | -| endPoints.endPointType | Body | Enum | 접속 정보 타입
-`EXTERNAL`: 외부 접속 도메인
-`INTERNAL`: 내부 접속 도메인
-`PUBLIC`: (Deprecated) 외부 접속 도메인
-`PRIVATE`: (Deprecated) 내부 접속 도메인 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2215,19 +1998,7 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "kr-pub-a", - "subnet": { - "subnetId": "bd453789-34ae-416c-9f78-05b9e43a46be", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/16" - }, - "endPoints": [ - { - "domain": "ea548a78-d85f-43b4-8ddf-c88d999b9905.internal.kr1.mariadb.rds.nhncloudservice.com", - "ipAddress": "192.168.0.2", - "endPointType": "INTERNAL" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2236,66 +2007,68 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info --- -### 네트워크 정보 수정하기 +### 고가용성 분리하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/network-info +POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 사용자 목록 보기 +### 로그 파일 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/db-users +GET /v4.0/db-instances/{dbInstanceId}/log-files ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|---------------------| -| RDSforMariaDB:DbInstanceUser.List | DB 인스턴스 내 사용자 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|-----------------------------------------------------------------------------------------------------------------------------| -| dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | -| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | -| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | -| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `UPDATING`: 수정 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbUsers.authenticationPlugin | Body | Enum | 인증 플러그인
- NATIVE: `mysql_native_password`
- ED25519: `auth_ed25519` | -| dbUsers.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbUsers.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| logFiles | Body | Array | 로그 파일 목록 | +| logFiles.logFileName | Body | String | 로그 파일 이름 | +| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- ERROR
- BINLOG
- GENERAL
- SLOW_QUERY
- AUDIT
- BACKUP | +| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | +| logFiles.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -2307,15 +2080,9 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbUsers": [ + "logFiles": [ { - "dbUserId": "4b3d530b-fd02-4d59-a620-83d019a67bbb", - "dbUserName": "db-user", - "host": "%", - "authorityType": "DDL", - "dbUserStatus": "STABLE", - "createdYmdt": "2023-03-17T14:02:29+09:00", - "updatedYmdt": "2023-03-17T14:02:31+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2326,39 +2093,35 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users --- -### DB 사용자 생성하기 +### 로그 파일 내보내기 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-users +POST /v4.0/db-instances/{dbInstanceId}/log-files/export ``` - -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMariaDB:DbInstanceUser.Create | DB 인스턴스 내 사용자 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserName | Body | String | O | DB 사용자 계정 이름
- 최소 길이: `1`
- 최대 길이: `32` | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| host | Body | String | O | DB 사용자 계정의 호스트명
- 예시: `1.1.1.%` | -| authorityType | Body | Enum | O | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- 기본값: `NATIVE`(미지원 시 `ED25519`)
- NATIVE: `mysql_native_password`
- ED25519: `auth_ed25519` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| logFileNames | Body | Array | O | 로그 파일 이름 목록 | +| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 |

예시

```json { - "dbUserName": "db-user", - "dbPassword": "password", - "host": "1.1.1.%", - "authorityType": "CRUD" + "logFileNames": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -2367,112 +2130,105 @@ POST /v4.0/db-instances/{dbInstanceId}/db-users #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### DB 사용자 수정하기 - -```http -PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMariaDB:DbInstanceUser.Modify | DB 인스턴스 내 사용자 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | -| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| authorityType | Body | Enum | X | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- ED25519: `auth_ed25519` | -

예시

```json { - "authorityType": "DDL" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 삭제하기 +### 로그 파일 내용 보기 ```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMariaDB:DbInstanceUser.Delete | DB 인스턴스 내 사용자 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| logFileName | URL | UUID | O | 로그 파일 이름 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| content | Body | String | 로그 파일 내용 (최대 65533 bytes) | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "content": "content-example" +} +``` + +

+
--- -### DB 스키마 목록 보기 +### DB 인스턴스 유지 관리 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/db-schemas +GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|---------------------| -| RDSforMariaDB:DbInstanceSchema.List | DB 인스턴스 내 스키마 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| type | Query | String | X | | +| statuses | Query | String | X | | +| category | Query | String | X | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|------------------------------------------------------------------------------------------------------| -| dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | -| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | -| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbSchemas.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 유지 관리 목록 갯수 | +| maintenances | Body | Array | 유지 관리 목록 | +| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| maintenances.description | Body | String | 유지 관리 설명 | +| maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| maintenances.payload | Body | Object | 유지 관리 타입에 따른 Payload | +| maintenances.required | Body | Boolean | 유지 관리 필수 여부 | +| maintenances.deadlineYmdt | Body | DateTime | 유지 관리 강제 적용 일시 | +| maintenances.status | Body | Enum | 유지 관리 상태
- PENDING: `대기`
- READY: `준비`
- RUNNING: `실행 중`
- COMPLETED: `완료`
- FAILED: `실패`
- EXCLUDED: `제외`
- DELETED: `삭제`
- UNKNOWN | +| maintenances.executionType | Body | Enum | 유지 관리 실행 타입
- SCHEDULED: `예약 실행 (유지 관리 기간 자동 실행)`
- MANUAL: `수동 실행 (즉시 실행)`
- FORCED: `강제 실행 (데드라인 초과 자동 실행)` | +| maintenances.addedYmdt | Body | DateTime | 유지 관리 스케줄 등록 일시 | +| maintenances.executionStartedYmdt | Body | DateTime | 유지 관리 시작 일시 | +| maintenances.executionCompletedYmdt | Body | DateTime | 유지 관리 종료 일시 |
예시

@@ -2484,12 +2240,10 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSchemas": [ + "totalCounts": 1, + "maintenances": [ { - "dbSchemaId": "7c9a94b8-86c1-435d-8af2-82a5e9d53fd4", - "dbSchemaName": "schema", - "dbSchemaStatus": "STABLE", - "createdYmdt": "2023-03-20T13:37:45+09:00" + "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2500,93 +2254,151 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas --- -### DB 스키마 생성하기 +### DB 인스턴스 유지 관리 즉시 실행하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-schemas +POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMariaDB:DbInstanceSchema.Create | DB 인스턴스 내 스키마 생성하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload | -#### 요청 +

예시 +

+ +```json +{ + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaName | Body | String | O | DB 스키마 이름 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### DB 스키마 삭제하기 +
예시 +

-```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} ``` -#### 필요 권한 +

+
+ +--- + +### DB 인스턴스 유지 관리 예약하기 -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMariaDB:DbInstanceSchema.Delete | DB 인스턴스 내 스키마 삭제하기 | +```http +POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule +``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload | + +
예시 +

+ +```json +{ + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 로그 파일 목록 보기 +### DB 인스턴스 유지 관리 삭제하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/log-files +DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| maintenanceId | URL | UUID | O | 유지 관리 아이디 | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. -| 권한명 | 설명 | -|------------------------------------------------|-----------------------| -| RDSforMariaDB:DbInstanceLog.List | DB 인스턴스 내 로그 파일 목록 보기 | +--- + +### 네트워크 정보 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/network-info +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|-------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileTypes | Query | Array | X | 로그 파일 타입 종류 목록
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| logFiles | Body | Array | 로그 파일 목록 | -| logFiles.logFileName | Body | String | 로그 파일명 | -| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | -| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | -| logFiles.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | +| subnet | Body | Object | 서브넷 객체 | +| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnet.subnetCidr | Body | String | 서브넷의 CIDR | +| endPoints | Body | Array | 접속 정보 목록 | +| endPoints.domain | Body | String | 도메인 | +| endPoints.ipAddress | Body | String | IP 주소 | +| endPoints.endPointType | Body | String | 접속 정보 타입 |
예시

@@ -2598,12 +2410,15 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files "resultMessage": "SUCCESS", "isSuccessful": true }, - "logFiles": [ + "availabilityZone": "availabilityZone-example", + "subnet": { + "subnetId": "subnetId-example", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example" + }, + "endPoints": [ { - "logFileName": "xtra_full.log-20230317", - "logFileType": "BACKUP", - "logFileSize": 4096, - "createdYmdt": "2023-03-17T14:02:29+09:00" + "endPointType": "endPointType-example" } ] } @@ -2614,33 +2429,36 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files --- -### 로그 파일 내용 보기 +### 네트워크 정보 수정하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} +PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------|-----------------------| -| RDSforMariaDB:DbInstanceLog.Get | DB 인스턴스 내 로그 파일 내용 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "usePublicAccess": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|--------|----|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileName | URL | String | O | 로그 파일명 | -| logFileType | Query | Enum | O | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------|------|--------|---------------------------| -| content | Body | String | 로그 파일 내용(최대 65533 Bytes) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2652,7 +2470,7 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} "resultMessage": "SUCCESS", "isSuccessful": true }, - "content": "..." + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2661,84 +2479,64 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} --- -### 로그 파일 내보내기 +### DB 인스턴스 승격하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/log-files/export +POST /v4.0/db-instances/{dbInstanceId}/promote ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. -| 권한명 | 설명 | -|--------------------------------------------------|----------------------| -| RDSforMariaDB:DbInstanceLog.Export | DB 인스턴스 내 로그 파일 내보내기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|--------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileNames | Body | Array | O | 로그 파일명 목록
- 최소 크기: `1` | -| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "logFileNames": ["xtra_full.log-20230317"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "logs/backup" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### BinLog 목록 보기 +### DB 인스턴스 재구축하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/binlogs +POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|---------------| -| RDSforMariaDB:DbInstanceBinLog.List | BinLog 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|---------|----|---------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| deletable | Query | Boolean | X | 삭제 가능한 BinLog만 조회할지 여부
- `true`: 마지막 BinLog 제외
- `false`: 전체
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|----------|-----------------------------------| -| binLogs | Body | Array | BinLog 파일 목록 | -| binLogs.binLogFileName | Body | String | BinLog 파일명 | -| binLogs.binLogFileSize | Body | Number | BinLog 파일 크기(Byte) | -| binLogs.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2750,13 +2548,7 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs "resultMessage": "SUCCESS", "isSuccessful": true }, - "binLogs": [ - { - "binLogFileName": "mysql-bin.000001", - "binLogFileSize": 1073741824, - "createdYmdt": "2023-03-17T14:02:29+09:00" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2765,31 +2557,91 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs --- -### BinLog 삭제 +### DB 인스턴스 복제하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge +POST /v4.0/db-instances/{dbInstanceId}/replicate ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|------------| -| RDSforMariaDB:DbInstanceBinLog.Purge | BinLog 삭제 | - -#### 요청 +#### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| lastBinLogFileName | Body | String | O | 삭제할 마지막 BinLog 파일명(해당 파일 직전까지 삭제됩니다) | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부 | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | X | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | X | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |

예시

```json { - "lastBinLogFileName": "mysql-bin.000010" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } } ``` @@ -2798,7 +2650,9 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

@@ -2809,7 +2663,8 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2818,164 +2673,99 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge --- -### 인증서 파일 목록 보기 +### DB 인스턴스 재시작하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/certificates +POST /v4.0/db-instances/{dbInstanceId}/restart ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|---------------| -| RDSforMariaDB:DbInstanceCertificate.List | 인증서 파일 목록 보기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|---------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|------------------------------------------------------------------------------| -| certificates | Body | Array | 인증서 파일 목록 | -| certificates.fileName | Body | String | 인증서 파일명 | -| certificates.certificateType | Body | Enum | 인증서 타입
- `CA_FILE`: CA 인증서
- `CERT_FILE`: 인증서
- `KEY_FILE`: 비밀 키 | -| certificates.fileSize | Body | Number | 인증서 파일 크기(Byte) | -| certificates.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "certificates": [ - { - "fileName": "ca.pem", - "certificateType": "CA_FILE", - "fileSize": 2048, - "createdYmdt": "2023-03-17T14:02:29+09:00" - } - ] + "useOnlineFailover": false, + "executeBackup": false, + "waitReplicationDelay": false, + "useReadOnly": false } ```

---- - -### 인증서 파일 내보내기 - -```http -POST /v4.0/db-instances/{dbInstanceId}/certificates/upload -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------------|-------------| -| RDSforMariaDB:DbInstanceCertificate.Export | 인증서 파일 내보내기 | - -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|--------|----|------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| certificateTypes | Body | Array | O | 업로드할 인증서 타입
- `CA_FILE`: CA 인증서
- `CERT_FILE`: 인증서
- `KEY_FILE`: 비밀 키 | -| tenantId | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 인증서 파일의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "certificateTypes": ["CA_FILE", "CERT_FILE", "KEY_FILE"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "certificates/" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | - -### 백업 상세 보기 +### DB 인스턴스 복원 정보 조회 ```http -GET /v4.0/backups/{backupId} +GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------|----------| -| RDSforMariaDB:Backup.Get | 백업 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------|------|----------|-----------------| -| backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | UUID | 백업의 식별자 | -| backup.regionCode | Body | Enum | 리전 코드 | -| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backup.backupStatus | Body | Enum | 백업의 현재 상태 | -| backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| backup.dbVersion | Body | Enum | DB 엔진 버전 | -| backup.backupType | Body | Enum | 백업 유형 | -| backup.backupMethodType | Body | Enum | 백업 방식 | -| backup.backupFileType | Body | Enum | 백업 파일 유형 | -| backup.backupSize | Body | Number | 백업의 크기(Byte) | -| backup.isReplicable | Body | Boolean | 복제 가능 여부 | -| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| backup.binLogPosition | Body | Number | 바이너리 로그 위치 | -| backup.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| backup.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | +| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | +| restorableBackups | Body | Array | 복원 가능한 백업 목록 | +| restorableBackups.backup | Body | Object | 백업 정보 객체 | +| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupName | Body | String | 백업 이름 | +| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | +| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | +| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | +| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | +| restorableBackups.backup.binLogPosition | Body | Object | 바이너리 로그 파일 위치 | +| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | +| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | +| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 |
예시

@@ -2987,24 +2777,13 @@ GET /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "backup": { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "regionCode": "KR1", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbInstanceName": "db-instance", - "dbVersion": "MARIADB_V10330", - "backupType": "AUTO", - "backupMethodType": "FULL", - "backupFileType": "XTRA_BACKUP", - "backupSize": 4996786, - "isReplicable": true, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 154, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" - } + "oldestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "restorableBackups": [ + { + "restorableBinLogs": [] + } + ] } ``` @@ -3013,45 +2792,26 @@ GET /v4.0/backups/{backupId} --- -### 백업 목록 조회 +### 복원될 마지막 쿼리 조회 ```http -GET /v4.0/backups +GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMariaDB:Backup.List | 백업 목록 조회 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | -| backupType | Query | Enum | X | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동
- 기본값: 전체 | -| dbInstanceId | Query | UUID | X | 원본 DB 인스턴스의 식별자 | -| dbVersion | Query | Enum | X | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|-----------------------------------| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | UUID | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태 | -| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.backupType | Body | Enum | 백업 유형 | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| executedYmdt | Body | DateTime | 쿼리 수행 일시 | +| lastQuery | Body | String | 마지막 수행 쿼리 |

예시

@@ -3063,20 +2823,8 @@ GET /v4.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "backups": [ - { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbVersion": "MARIADB_V10330", - "backupType": "AUTO", - "backupSize": 4996786, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" - } - ] + "executedYmdt": "2023-12-31T15:00:00+09:00", + "lastQuery": "lastQuery-example" } ``` @@ -3085,312 +2833,344 @@ GET /v4.0/backups --- -### 백업 생성하기 +### DB 인스턴스 복원 ```http -POST /v4.0/backups +POST /v4.0/db-instances/{dbInstanceId}/restore ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMariaDB:Backup.Create | 백업 생성하기 | - #### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|--------|----|--------------------------------------------------------------------------------------| -| backupName | Body | String | O | 백업을 식별할 수 있는 이름 | -| backupMethodType | Body | Enum | O | 백업 방식 타입 종류
- `FULL`: 전체 백업
- `INCREMENTAL`: 증분 백업
- `SNAPSHOT`: 스냅숏 백업 | - -#### 전체 백업(backupMethodType이 `FULL`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미입력 시 원본 인스턴스의 사양이 적용됩니다. | +| dbPort | Body | Number | X | DB 포트 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | X | 스토리지 정보 객체. 미입력 시 원본 인스턴스의 스토리지 설정이 적용됩니다. | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미입력 시 원본 인스턴스의 스토리지 타입이 적용됩니다. | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미입력 시 원본 인스턴스의 스토리지 크기가 적용됩니다.
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | X | 네트워크 정보 객체. 미입력 시 원본 인스턴스의 네트워크 설정이 적용됩니다. | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미입력 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미입력 시 랜덤 선택 | +| backup | Body | Object | X | 백업 정보 객체. 미입력 시 원본 인스턴스의 백업 설정이 적용됩니다. | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미입력 시 원본 인스턴스의 백업 보관 기간이 적용됩니다.
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미입력 시 원본 인스턴스의 백업 스케쥴이 적용됩니다. | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.restoreType | Body | Enum | O | 복원 타입
- TIMESTAMP: `복원 가능한 시간 이내의 시간을 이용한 시점 복원`
- BINLOG: `복원 가능한 바이너리 로그 위치를 이용한 시점 복원`
- BACKUP: `기존에 생성한 백업을 이용한 스냅숏 복원` | +| restore.binLog.binLogFileName | Body | String | X | 복원에 사용할 바이너리 로그 이름 | +| restore.binLog.binLogPosition | Body | Object | X | 복원에 사용할 바이너리 로그 위치 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미입력 시 원본 인스턴스의 파라미터 그룹이 적용됩니다. | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록. 미입력 시 원본 인스턴스의 보안 그룹이 적용됩니다. | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|--------------| -| dbInstanceId | Body | UUID | O | DB 인스턴스의 식별자 | +#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.restoreYmdt | Body | DateTime | X | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -

예시 -

+복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. -```json -{ - "backupName": "example-backup-name", - "backupMethodType": "FULL", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd" -} -``` +#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | +| restore.binLog | Body | Object | X | 복원에 사용할 바이너리 로그 정보 객체 | -#### 증분 백업(backupMethodType이 `INCREMENTAL`인 경우) +바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|------------| -| baseBackupId | Body | UUID | O | 기준 백업의 식별자 | +#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 |
예시

```json { - "backupName": "example-backup-name", - "backupMethodType": "INCREMENTAL", - "baseBackupId": "3ae7914f-9b42-4729-b125-87417b72cf36" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "useHighAvailability": false, + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "restoreType": "TIMESTAMP", + "binLog": { + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + } + } + }, + "useDefaultNotification": false, + "useSlowQueryAnalysis": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false } ```

+#### 응답 -#### 스냅숏 백업(backupMethodType이 `SNAPSHOT`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|--------------| -| dbInstanceId | Body | UUID | O | DB 인스턴스의 식별자 | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "backupName": "example-backup-name", - "backupMethodType": "SNAPSHOT", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 백업 내보내기 +### DB 인스턴스 시작하기 ```http -POST /v4.0/backups/{backupId}/export +POST /v4.0/db-instances/{dbInstanceId}/start ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMariaDB:Backup.Export | 백업 내보내기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - -> [주의] -> 수동 백업의 경우 백업이 수행된 DB 인스턴스가 존재하지 않으면, 백업을 오브젝트 스토리지로 내보낼 수 없습니다. - --- -### 백업 복원하기 +### DB 인스턴스 정지하기 ```http -POST /v4.0/backups/{backupId}/restore +POST /v4.0/db-instances/{dbInstanceId}/stop ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------| -| RDSforMariaDB:Backup.Restore | 백업 복원하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Integer | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a`
- 기본값: 랜덤 선택 | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 예시: `General SSD`
- 기본값: 원본 DB 인스턴스 값 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: 원본 DB 인스턴스 값 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json - { - "dbInstanceName": "db-instance-restore", - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbPort": 10000, - "parameterGroupId": "132d383c-38e3-468a-a826-5e9a8fff15d0", - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 백업 삭제하기 +### 스토리지 정보 보기 ```http -DELETE /v4.0/backups/{backupId} +GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMariaDB:Backup.Delete | 백업 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageType | Body | String | 데이터 스토리지 타입 | +| storageSize | Body | Number | 데이터 스토리지 크기(GB) | +| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- DELETED: `삭제됨`
- PENDING_DELETION: `삭제 유예됨`
- DELETION_RESERVED: `삭제 예약됨 (스냅샷 정리 대기)`
- DETACHED: `해제됨`
- ATTACHED: `할당됨` | +| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | +| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | +| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | +| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) | ---- +
예시 +

-## DB 보안 그룹 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storageType": "storageType-example", + "storageSize": 1, + "storageStatus": "DELETED", + "storageAutoscale": { + "useStorageAutoscale": false, + "threshold": 1, + "maxStorageSize": 1, + "cooldownTime": 1 + } +} +``` -### DB 보안 그룹 진행 상태 +

+
-| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +--- -### DB 보안 그룹 목록 보기 +### 스토리지 정보 수정하기 ```http -GET /v4.0/db-security-groups +PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------------|----------------| -| RDSforMariaDB:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최댓값: `2048` | +| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -#### 요청 +#### 스토리지 자동 확장 사용 시 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | + +
예시 +

+ +```json +{ + "storageSize": 1, + "storageAutoscale": { + "useStorageAutoscale": false + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-----------------------------------| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3402,16 +3182,7 @@ GET /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ - { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2022-02-19T19:18:13+09:00" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3420,48 +3191,44 @@ GET /v4.0/db-security-groups --- -### DB 보안 그룹 상세 보기 +## 백업 -```http -GET /v4.0/db-security-groups/{dbSecurityGroupId} -``` +### 백업 상태 -#### 필요 권한 +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | -| 권한명 | 설명 | -|-------------------------------------------------|----------------| -| RDSforMariaDB:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | +### 백업 목록 조회 + +```http +GET /v4.0/backups +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|----------|--------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다.
- `PORT`: 지정된 포트값으로 설정됩니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | 허용할 트래픽의 원격 소스 | -| rules.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| rules.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3473,30 +3240,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "rules": [ - { - "ruleId": "17c88ef6-95f1-4678-84f9-fee1b22e250d", - "description": "description", - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } - ], - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } + "totalCounts": 1, + "backups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -3505,56 +3254,30 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 생성하기 +### 백업 생성하기 ```http -POST /v4.0/db-security-groups +POST /v4.0/backups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMariaDB:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 필요하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | +| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | +| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "rules": [ - { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0" - } - ] + "backupName": "backupName", + "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "backupMethodType": "FULL" } ``` @@ -3563,48 +3286,48 @@ POST /v4.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|------|---------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | - ---- - -### DB 보안 그룹 수정하기 - -```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMariaDB:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|-----------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

+--- + +### 백업 삭제하기 + +```http +DELETE /v4.0/backups/{backupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3615,39 +3338,52 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### DB 보안 그룹 삭제하기 +### 백업 단건 조회 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/backups/{backupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMariaDB:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backup | Body | Object | 백업 상세 정보 | +| backup.backupId | Body | String | 백업의 식별자 | +| backup.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | +| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| backup.dbVersion | Body | Enum | DB 엔진 버전 | +| backup.utilVersion | Body | String | 유틸리티 버전 | +| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | +| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | +| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | +| backup.backupSize | Body | Number | 백업의 크기(Byte) | +| backup.isReplicable | Body | Boolean | 복제 가능 여부 | +| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | +| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | +| backup.createdYmdt | Body | DateTime | 생성 일시 | +| backup.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3658,6 +3394,26 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true + }, + "backup": { + "backupId": "backupId-example", + "regionCode": "KR1", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupMethodType": "FULL", + "backupFileType": "XBSTREAM", + "backupSize": 1, + "isReplicable": false, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } } ``` @@ -3667,48 +3423,33 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 규칙 생성하기 +### 백업 내보내기 ```http -POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v4.0/backups/{backupId}/export ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMariaDB:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 필요하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT", - "minPort": 10000, - "maxPort": 10000 - }, - "cidr": "0.0.0.0/0" + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -3717,53 +3458,126 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 보안 그룹 규칙 수정하기 +### 백업 복원하기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +POST /v4.0/backups/{backupId}/restore ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMariaDB:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | - -#### 요청 +#### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleId | URL | UUID | O | DB 보안 그룹 규칙의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 필요하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | +| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |
예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "DB_PORT" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" }, - "cidr": "0.0.0.0/0" + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } } ``` @@ -3772,75 +3586,132 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 보안 그룹 규칙 삭제하기 +## DB 보안 그룹 -```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules -``` +### DB 보안 그룹 진행 상태 -#### 필요 권한 +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMariaDB:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 삭제하기 | +### DB 보안 그룹 목록 보기 + +```http +GET /v4.0/db-security-groups +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|-------|----|---------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleIds | Query | Array | O | DB 보안 그룹 규칙의 식별자 목록 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 | ---- +
예시 +

-## 파라미터 그룹 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "dbSecurityGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` -### 파라미터 그룹 목록 보기 +

+
+ +--- + +### DB 보안 그룹 생성하기 ```http -GET /v4.0/parameter-groups +POST /v4.0/db-security-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------------------|---------------| -| RDSforMariaDB:ParameterGroup.List | 파라미터 그룹 목록 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ + { + "description": "description-example" + } + ] +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------|-------|------|----|----------| -| dbVersion | Query | Enum | X | DB 엔진 유형 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-------------------------------------------------------------------| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -3852,67 +3723,71 @@ GET /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroups": [ - { - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MARIADB_V10330", - "parameterGroupStatus": "STABLE", - "createdYmdt": "2023-02-31T15:28:17+09:00", - "updatedYmdt": "2023-02-31T15:28:17+09:00" - } - ] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ```

- --- -### 파라미터 그룹 상세 보기 +### DB 보안 그룹 삭제하기 ```http -GET /v4.0/parameter-groups/{parameterGroupId} +DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 상세 보기 -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMariaDB:ParameterGroup.Get | 파라미터 그룹 상세 보기 | +```http +GET /v4.0/db-security-groups/{dbSecurityGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|--------------------------------------------------------------------------------------------------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | UUID | 파라미터 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- `CLIENT`: client
- `MYSQL`: mysql
- `MYSQLD`: mysqld | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일명 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- `VARIABLE`: 언제든 수정 가능
- `CONSTANT`: 수정 불가능
- `INIT_VARIABLE`: DB 인스턴스 생성 시에만 수정 가능 | -| parameters.applyType | Body | Enum | 적용 타입
- `SESSION`: 세션 적용
- `FILE`: 설정 파일 적용(재시작 필요)
- `BOTH`: 전체(재시작 필요) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| rules | Body | Array | DB 보안 그룹 규칙 목록 | +| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | 포트 객체 | +| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | 최소 포트 범위 | +| rules.port.maxPort | Body | Number | 최대 포트 범위 | +| rules.cidr | Body | String | CIDR | +| rules.createdYmdt | Body | DateTime | 생성 일시 | +| rules.updatedYmdt | Body | DateTime | 수정 일시 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3924,62 +3799,46 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MARIADB_V10330", - "parameterGroupStatus": "STABLE", - "parameters": [ + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ { - "parameterId": "fa040b5e-f29f-46de-8f0d-bba4cb82887a", - "parameterFileGroup": "client", - "parameterName": "socket", - "fileParameterName": "socket", - "value": "/home/tcrds/db/mysql/tmp/mysql.sock", - "defaultValue": "/home/tcrds/db/mysql/tmp/mysql.sock", - "allowedValue": "", - "updateType": "CONSTANT", - "applyType": "BOTH" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], - "createdYmdt": "2023-03-13T11:02:28+09:00", - "updatedYmdt": "2023-03-13T11:02:28+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

- --- -### 파라미터 그룹 생성하기 +### DB 보안 그룹 수정하기 ```http -POST /v4.0/parameter-groups +PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMariaDB:ParameterGroup.Create | 파라미터 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` |
예시

```json { - "parameterGroupName": "parameter-group", - "dbVersion": "MARIADB_V10330" + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" } ``` @@ -3988,79 +3847,84 @@ POST /v4.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 복사하기 +### DB 보안 그룹 규칙 삭제하기 ```http -POST /v4.0/parameter-groups/{parameterGroupId}/copy +DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------------------|--------------| -| RDSforMariaDB:ParameterGroup.Copy | 파라미터 그룹 복사하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

```json { - "parameterGroupName": "parameter-group-copy", - "description": "copy" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | - --- -### 파라미터 그룹 수정하기 +### DB 보안 그룹 규칙 생성하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId} +POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMariaDB:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |
예시

```json { - "parameterGroupName": "parameter-group" + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -4069,7 +3933,9 @@ PUT /v4.0/parameter-groups/{parameterGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -4080,7 +3946,8 @@ PUT /v4.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ``` @@ -4089,38 +3956,41 @@ PUT /v4.0/parameter-groups/{parameterGroupId} --- -### 파라미터 수정하기 +### DB 보안 그룹 규칙 수정하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/parameters +PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMariaDB:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------|------|--------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "modifiedParameters": [ - { - "parameterId": "3abac558-7274-44e1-9f4a-f100f53f67ba", - "value": "0" - } - ] + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -4129,7 +3999,9 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -4140,7 +4012,8 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ``` @@ -4149,27 +4022,32 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters --- -### 파라미터 그룹 재설정하기 +## 파라미터 그룹 + +### 파라미터 그룹 목록 보기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/reset +GET /v4.0/parameter-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|---------------| -| RDSforMariaDB:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 파라미터 그룹 수 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4180,7 +4058,13 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "totalCounts": 1, + "parameterGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -4189,29 +4073,39 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset --- -### 파라미터 그룹 삭제하기 +### 파라미터 그룹 생성하기 ```http -DELETE /v4.0/parameter-groups/{parameterGroupId} +POST /v4.0/parameter-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMariaDB:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +

+
#### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -4222,7 +4116,8 @@ DELETE /v4.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4231,33 +4126,61 @@ DELETE /v4.0/parameter-groups/{parameterGroupId} --- -## 사용자 그룹 - -### 사용자 그룹 목록 보기 +### 파라미터 그룹 삭제하기 ```http -GET /v4.0/user-groups +DELETE /v4.0/parameter-groups/{parameterGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 파라미터 그룹 상세 보기 -| 권한명 | 설명 | -|--------------------------------------------|--------------| -| RDSforMariaDB:UserGroup.List | 사용자 그룹 목록 보기 | +```http +GET /v4.0/parameter-groups/{parameterGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|-----------------------------------| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4269,14 +4192,18 @@ GET /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "applyType": "BOTH" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4285,37 +4212,71 @@ GET /v4.0/user-groups --- -### 사용자 그룹 상세 보기 +### 파라미터 그룹 수정하기 ```http -GET /v4.0/user-groups/{userGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} ``` -#### 필요 권한 +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 파라미터 그룹 복사하기 -| 권한명 | 설명 | -|-------------------------------------------|--------------| -| RDSforMariaDB:UserGroup.Get | 사용자 그룹 상세 보기 | +```http +POST /v4.0/parameter-groups/{parameterGroupId}/copy +``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +
예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|----------|-----------------------------------------------------------------------------------------------------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
`ENTIRE`: 프로젝트 멤버 전체를 포함하는 사용자 그룹
`INDIVIDUAL_MEMBER`: 특정 프로젝트 멤버를 포함하는 사용자 그룹 | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -4327,16 +4288,7 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "userGroupTypeCode": "INDIVIDUAL_MEMBER", - "members": [ - { - "memberId": "1321e759-2ef3-4b85-9921-b13e918b24b5" - } - ], - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4345,96 +4297,85 @@ GET /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 생성하기 +### 파라미터 수정하기 ```http -POST /v4.0/user-groups +PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMariaDB:UserGroup.Create | 사용자 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|-----------------------------------------------------------| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록
`selectAll`이 true인 경우 해당 필드 값은 무시됩니다 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 여부
true인 경우 해당 그룹은 전체 멤버를 대상으로 설정됩니다 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5" + "modifiedParameters": [ + { + "value": "value-example" + } ] } ``` -```json -{ - "userGroupName": "dev-team", - "selectAll": true -} -``` -

#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------|------|------|-------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 사용자 그룹 수정하기 +### 파라미터 그룹 재설정하기 ```http -PUT /v4.0/user-groups/{userGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMariaDB:UserGroup.Modify | 사용자 그룹 수정하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|----------------------------------------------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | -| userGroupName | Body | String | X | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 여부
true인 경우 해당 그룹은 전체 멤버를 대상으로 설정됩니다 | +#### 응답 -
예시 -

+이 API는 응답 본문을 반환하지 않습니다. -```json -{ - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5", - "f9064b09-2b15-442e-a4b0-3a5a2754555e" - ] -} +--- + +## 사용자 그룹 + +### 사용자 그룹 목록 보기 + +```http +GET /v4.0/user-groups ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4445,7 +4386,13 @@ PUT /v4.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "totalCounts": 1, + "userGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -4454,27 +4401,39 @@ PUT /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 삭제하기 +### 사용자 그룹 생성하기 ```http -DELETE /v4.0/user-groups/{userGroupId} +POST /v4.0/user-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMariaDB:UserGroup.Delete | 사용자 그룹 삭제하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | -#### 요청 +

예시 +

+ +```json +{ + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +

+
#### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 |
예시

@@ -4485,7 +4444,8 @@ DELETE /v4.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "userGroupId": "userGroupId-example" } ``` @@ -4494,36 +4454,51 @@ DELETE /v4.0/user-groups/{userGroupId} --- -## 알림 그룹 - -### 알림 그룹 목록 보기 +### 사용자 그룹 삭제하기 ```http -GET /v4.0/notification-groups +DELETE /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 -| 권한명 | 설명 | -|----------------------------------------------------|-------------| -| RDSforMariaDB:NotificationGroup.List | 알림 그룹 목록 보기 | +```http +GET /v4.0/user-groups/{userGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------------|------|----------|-----------------------------------| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4535,17 +4510,16 @@ GET /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "memberId": "memberId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4554,117 +4528,80 @@ GET /v4.0/notification-groups --- -### 알림 그룹 상세 보기 +### 사용자 그룹 수정하기 ```http -GET /v4.0/notification-groups/{notificationGroupId} +PUT /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|-------------| -| RDSforMariaDB:NotificationGroup.Get | 알림 그룹 상세 보기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|----------------------------|------|----------|-----------------------------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "dbInstances": [ - { - "dbInstanceId": "ed5cb985-526f-4c54-9ae0-40288593de65", - "dbInstanceName": "database" - } - ], - "userGroups": [ - { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team" - } - ], - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 알림 그룹 생성하기 +## 알림 그룹 + +### 알림 그룹 목록 보기 ```http -POST /v4.0/notification-groups +GET /v4.0/notification-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMariaDB:NotificationGroup.Create | 알림 그룹 생성하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------------| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

```json { - "notificationGroupName": "dev-team-noti", - "notifyEmail": false, - "isEnable": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65" - ], - "userGroupIds": [ - "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "notificationGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } ] } ``` @@ -4672,48 +4609,36 @@ POST /v4.0/notification-groups

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|------|------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | - --- -### 알림 그룹 수정하기 +### 알림 그룹 생성하기 ```http -PUT /v4.0/notification-groups/{notificationGroupId} +POST /v4.0/notification-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMariaDB:NotificationGroup.Modify | 알림 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부 | -| notifySms | Body | Boolean | X | SMS 알림 여부 | -| isEnabled | Body | Boolean | X | 활성화 여부 | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |
예시

```json { + "notificationGroupName": "notificationGroupName", "notifyEmail": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65", - "d51b7da0-682f-47ff-b588-b739f6adc740" - ] + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], + "userGroupIds": [] } ``` @@ -4722,7 +4647,9 @@ PUT /v4.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -4733,7 +4660,8 @@ PUT /v4.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example" } ``` @@ -4748,23 +4676,51 @@ PUT /v4.0/notification-groups/{notificationGroupId} DELETE /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 알림 그룹 상세 보기 -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMariaDB:NotificationGroup.Delete | 알림 그룹 삭제하기 | +```http +GET /v4.0/notification-groups/{notificationGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4775,7 +4731,24 @@ DELETE /v4.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ + { + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4784,112 +4757,96 @@ DELETE /v4.0/notification-groups/{notificationGroupId} --- -## 모니터링 - -### Metric 목록 보기 +### 알림 그룹 수정하기 ```http -GET /v4.0/metrics +PUT /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMariaDB:Metric.List | 통계 정보 조회 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|--------|-----------| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | Enum | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "metrics": [ - { - "measureName": "CPU_USAGE", - "unit": "%" - } - ] + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- +## 모니터링 + ### 통계 정보 조회 ```http GET /v4.0/metric-statistics ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### Metric 목록 보기 -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMariaDB:Metric.List | 통계 정보 조회 | +```http +GET /v4.0/metrics +``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|----------|----|-----------------------------------| -| dbInstanceId | Query | UUID | O | DB 인스턴스의 식별자 | -| measureNames | Query | Array | O | 조회 지표 목록
- 최소 크기: `1` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| interval | Query | Number | X | 조회 간격 | +이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|-----------|----------| -| metricStatistics | Body | Array | 통계 정보 목록 | -| metricStatistics.measureName | Body | Enum | 측정 항목 유형 | -| metricStatistics.unit | Body | String | 측정값 단위 | -| metricStatistics.values | Body | Array | 측정값 목록 | -| metricStatistics.values.timestamp | Body | Timestamp | 측정 시간 | -| metricStatistics.values.value | Body | Object | 측정값 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

```json { - "metricStatistics": [ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "metrics": [ { - "measureName": "MYSQL_STATUS", - "unit": "", - "values": [ - [ - 1679298540, - "1" - ], - [ - 1679298600, - "1" - ], - [ - 1679298660, - "1" - ] - ] + "unit": "unit-example" } ] } @@ -4915,47 +4872,23 @@ GET /v4.0/metric-statistics | TENANT | 테넌트 | | MONITORING | 모니터링 | -### 이벤트 목록 조회 +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v4.0/events +GET /v4.0/event-codes ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMariaDB:Event.List | 이벤트 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| eventCategoryType | Query | Enum | O | 조회할 이벤트 카테고리 유형
- `ALL`: 전체
- `INSTANCE`: DB 인스턴스
- `BACKUP`: 백업
- `DB_SECURITY_GROUP`: DB 보안 그룹
- `TENANT`: 테넌트 | -| sourceId | Query | String | X | 이벤트가 발생한 대상 리소스의 식별자 | -| keyword | Query | String | X | 이벤트 메시지에 포함된 문자열 검색어 | -| ascendingOrder | Query | Enum | X | 이벤트 메시지 정렬 순서
- `ASC`: 오름차순
- `DESC`: 내림차순
- 기본값: `DESC` | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|---------------------------------------| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메시지 목록 | -| events.messages.langCode | Body | String | 언어 코드 | -| events.messages.message | Body | String | 이벤트 메시지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |

예시

@@ -4967,32 +4900,9 @@ GET /v4.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 28, - "events": [ + "eventCodes": [ { - "eventCategoryType": "INSTANCE", - "eventCode": "INSTC_02_01", - "sourceId": "76f00947-356e-4a20-8922-428368cc45ed", - "sourceName": "db-instance", - "messages": [ - { - "langCode": "EN", - "message": "DB instance started" - }, - { - "langCode": "JA", - "message": "DBインスタンスの起動" - }, - { - "langCode": "KO", - "message": "DB 인스턴스 시작" - }, - { - "langCode": "ZH", - "message": "DB instance started" - } - ], - "eventYmdt": "2023-03-20T16:31:59+09:00" + "eventCategoryType": "ALL" } ] } @@ -5003,29 +4913,30 @@ GET /v4.0/events --- -### 구독 가능한 이벤트 코드 목록 보기 +### 이벤트 목록 조회 ```http -GET /v4.0/event-codes +GET /v4.0/events ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMariaDB:Event.List | 이벤트 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|-------|-------------| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

@@ -5037,10 +4948,10 @@ GET /v4.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "totalCounts": 1, + "events": [ { - "eventCode": "INSTC_05_01", - "eventCategoryType": "INSTANCE" + "eventYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -5059,40 +4970,28 @@ GET /v4.0/event-codes GET /v4.0/event-subscriptions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------------|---------------| -| RDSforMariaDB:EventSubscription.List | 이벤트 구독 목록 조회 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | -| eventSubscriptionId | Query | UUID | X | 이벤트 구독의 식별자 | -| eventSubscriptionName | Query | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| userGroupId | Query | UUID | X | 사용자 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------------|------|----------|--------------------------| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트의 구독 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독을 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | UUID | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |

예시

@@ -5107,25 +5006,7 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "12345678-1234-1234-1234-123456789012", - "eventCategoryType": "INSTANCE", - "eventSubscriptionName": "example-event-subscription", - "enabled": true, - "notifyEmail": true, - "notifySms": false, - "eventCodes": [ - "INSTC_05_01" - ], - "sources": [ - { - "sourceId": "87654321-4321-4321-4321-210987654321", - "eventCategoryType": "INSTANCE" - } - ], - "userGroupIds": [ - "11111111-2222-3333-4444-555555555555" - ], - "createdYmdt": "2024-01-01T12:00:00+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -5142,49 +5023,38 @@ GET /v4.0/event-subscriptions POST /v4.0/event-subscriptions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------------|--------------| -| RDSforMariaDB:EventSubscription.Create | 이벤트 구독 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------------------|------|---------|----|-----------------------------------------| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형 | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름
- 최대 길이: `100` | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형 | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "eventCategoryType": "INSTANCE", - "eventSubscriptionName": "example-event-subscription", - "enabled": true, - "notifyEmail": true, + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, "notifySms": false, - "eventCodes": [ - "INSTC_05_01" - ], + "eventCodes": [], "sources": [ { - "sourceId": "87654321-4321-4321-4321-210987654321", - "eventCategoryType": "INSTANCE" + "eventCategoryType": "ALL" } ], - "userGroupIds": [ - "11111111-2222-3333-4444-555555555555" - ] + "userGroupIds": [] } ``` @@ -5193,9 +5063,9 @@ POST /v4.0/event-subscriptions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------|------|------|-------------| -| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -5207,7 +5077,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "12345678-1234-1234-1234-123456789012" + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -5216,57 +5086,65 @@ POST /v4.0/event-subscriptions --- -### 이벤트 구독 수정하기 +### 이벤트 구독 삭제하기 ```http -PUT /v4.0/event-subscriptions/{eventSubscriptionId} +DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- -| 권한명 | 설명 | -|----------------------------------------------------------|--------------| -| RDSforMariaDB:EventSubscription.Modify | 이벤트 구독 수정하기 | +### 이벤트 구독 수정하기 + +```http +PUT /v4.0/event-subscriptions/{eventSubscriptionId} +``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------------------|------|---------|----|-----------------------------------| -| eventSubscriptionId | URL | UUID | O | 이벤트 구독의 식별자 | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형 | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | X | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형 | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "eventSubscriptionName": "updated-event-subscription", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, "notifyEmail": false, - "notifySms": true, - "eventCodes": [ - "INSTC_05_01", - "INSTC_06_01" - ], + "notifySms": false, + "eventCodes": [], "sources": [ { - "sourceId": "87654321-4321-4321-4321-210987654321", - "eventCategoryType": "INSTANCE" + "eventCategoryType": "ALL" } ], - "userGroupIds": [ - "11111111-2222-3333-4444-555555555555", - "22222222-3333-4444-5555-666666666666" - ] + "userGroupIds": [] } ``` @@ -5277,45 +5155,28 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} 이 API는 응답 본문을 반환하지 않습니다. -

예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } -} -``` - -

-
- --- -### 이벤트 구독 삭제하기 +## 가용성 영역 + +### 가용성 영역 목록 보기 ```http -DELETE /v4.0/event-subscriptions/{eventSubscriptionId} +GET /v4.0/availability-zones ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------------|--------------| -| RDSforMariaDB:EventSubscription.Delete | 이벤트 구독 삭제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|-----|------|----|-------------| -| eventSubscriptionId | URL | UUID | O | 이벤트 구독의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZones | Body | Array | 가용성 영역 목록 | +| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | +| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | +| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 |
예시

@@ -5326,7 +5187,14 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "availabilityZones": [ + { + "zoneState": { + "available": false + } + } + ] } ``` @@ -5334,3 +5202,4 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId}

--- + diff --git a/mariadb/ko/api-guide-v4.0.md b/mariadb/ko/api-guide-v4.0.md index 6af681ce..aa0b28cb 100644 --- a/mariadb/ko/api-guide-v4.0.md +++ b/mariadb/ko/api-guide-v4.0.md @@ -2,36 +2,29 @@ ## RDS for MariaDB API 공통 정보 -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|-----------|-----------------------------------------------| -| 한국(판교) 리전 | https://kr1-rds-mariadb.api.nhncloudservice.com | - ### 인증 및 권한 RDS for MariaDB은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. 발급 받은 토큰은 Appkey와 함께 요청 Header에 포함해야 합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|--------|--------|----|-------------------------------------------------------------| -| X-TC-APP-KEY | Header | String | O | RDS for MariaDB 서비스의 Appkey 또는 프로젝트 통합 Appkey | -| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| X-TC-APP-KEY | Header | String | O | RDS for MariaDB 서비스의 Appkey 또는 프로젝트 통합 Appkey | +| X-NHN-AUTHORIZATION | Header | String | O | Public API로 발급 받은 Bearer 유형 토큰 | +또한 프로젝트 권한에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MariaDB ADMIN`, `RDS for MariaDB VIEWER` 역할에는 아래처럼 기본 권한이 부여돼 있고 프로젝트 내 역할 그룹 관리 메뉴에서 필요한 권한만 부여할 수 있습니다. -또한 프로젝트 멤버 역할에 따라 호출할 수 있는 API가 제한됩니다. `RDS for MariaDB ADMIN`, `RDS for MariaDB VIEWER`로 구분하여 권한을 부여할 수 있습니다. - -* `RDS for MariaDB ADMIN` 권한은 모든 기능을 사용 가능합니다. -* `RDS for MariaDB VIEWER` 권한은 정보를 조회하는 기능만 사용 가능합니다. +* `RDS for MariaDB ADMIN` 역할은 API 실행에 필요한 모든 권한이 부여됩니다. +* `RDS for MariaDB VIEWER` 역할은 정보를 조회하는 권한만 부여됩니다. * DB 인스턴스를 생성, 수정, 삭제하거나, DB 인스턴스를 대상으로 하는 어떠한 기능도 사용할 수 없습니다. - * 단, 알림 그룹 및 사용자 그룹 관련 기능은 사용 가능합니다. + * 단, 알림 그룹과 사용자 그룹 관련된 기능은 사용할 수 있습니다. API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같은 오류가 발생합니다. -| resultCode | resultMessage | 설명 | -|------------|---------------|-------------| -| 80401 | Unauthorized | 인증에 실패했습니다. | -| 80403 | Forbidden | 권한이 없습니다. | +| resultCode | resultMessage | 설명 | +|------------|---------------|-----| +| 80401 | Unauthorized | 인증에 실패했습니다. | +| 80403 | Forbidden | 권한이 없습니다. | ### 응답 공통 정보 @@ -49,55 +42,60 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 ``` #### 필드 -| 이름 | 형식 | 설명 | -|---------------|---------|-----------------------------------------| -| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | -| resultMessage | String | 결과 메시지 | -| isSuccessful | Boolean | 성공 여부 | +| 이름 | 형식 | 설명 | +|-----|-----|-----| +| resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | +| resultMessage | String | 결과 메시지 | +| isSuccessful | Boolean | 성공 여부 | + +### API 엔드포인트 +| 리전 | 엔드포인트 | +|------|----------| +| 한국(판교) 리전 | https://kr1-rds-mariadb.api.nhncloudservice.com | ### DB 엔진 유형 -| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | -|-----------------|----------|------------------|--| -| MARIADB_V10330 | O | O | NATIVE, ED25519 | -| MARIADB_V10611 | O | O | NATIVE, ED25519 | -| MARIADB_V10612 | O | O | NATIVE, ED25519 | -| MARIADB_V10616 | O | O | NATIVE, ED25519 | -| MARIADB_V10622 | O | O | NATIVE, ED25519 | -| MARIADB_V101107 | O | O | NATIVE, ED25519 | -| MARIADB_V101108 | O | O | NATIVE, ED25519 | -| MARIADB_V101113 | O | O | NATIVE, ED25519 | -| MARIADB_V11407 | O | O | NATIVE, ED25519 | - -* ENUM 타입의 dbVersion 필드에서 해당 값을 사용할 수 있습니다. +| DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | +|------------|----------|------------------|------------| +| MARIADB_V10330 | X | X | NATIVE, ED25519 | +| MARIADB_V10611 | X | X | NATIVE, ED25519 | +| MARIADB_V10612 | X | X | NATIVE, ED25519 | +| MARIADB_V10616 | X | X | NATIVE, ED25519 | +| MARIADB_V10622 | X | X | NATIVE, ED25519 | +| MARIADB_V10625 | X | X | NATIVE, ED25519 | +| MARIADB_V101107 | O | O | NATIVE, ED25519 | +| MARIADB_V101108 | O | O | NATIVE, ED25519 | +| MARIADB_V101113 | O | O | NATIVE, ED25519 | +| MARIADB_V101116 | O | O | NATIVE, ED25519 | +| MARIADB_V11407 | O | O | NATIVE, ED25519 | +| MARIADB_V11410 | O | O | NATIVE, ED25519 | +| MARIADB_V11806 | O | O | NATIVE, ED25519 | + +* ENUM 타입의 dbVersion 필드에 대해 해당 값을 사용할 수 있습니다. * 버전에 따라 생성 또는 복원이 불가능한 경우가 있을 수 있습니다. ## 프로젝트 정보 -### 리전 목록 보기 +### 프로젝트 멤버 목록 보기 ```http -GET /v4.0/project/regions +GET /v4.0/project/members ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMariaDB:Project.Get | 프로젝트 정보 조회 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------|------|---------|----------------------------------------------------------------------------| -| regions | Body | Array | 리전 목록 | -| regions.regionCode | Body | Enum | 리전 코드
- `KR1`: 한국(판교) 리전 | -| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberName | Body | String | 프로젝트 멤버의 이름 | +| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | +| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 |
예시

@@ -109,44 +107,36 @@ GET /v4.0/project/regions "resultMessage": "SUCCESS", "isSuccessful": true }, - "regions": [ + "members": [ { - "regionCode": "KR1", - "isEnabled": true + "phoneNumber": "phoneNumber-example" } ] } ``` +

--- -### 프로젝트 멤버 목록 보기 +### 리전 목록 보기 ```http -GET /v4.0/project/members +GET /v4.0/project/regions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|------------| -| RDSforMariaDB:Project.Get | 프로젝트 정보 조회 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|--------|-----------------| -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| members.memberName | Body | String | 프로젝트 멤버의 이름 | -| members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | -| members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| regions | Body | Array | 리전 목록 | +| regions.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | +| regions.isEnabled | Body | Boolean | 리전의 활성화 여부 |
예시

@@ -158,12 +148,9 @@ GET /v4.0/project/members "resultMessage": "SUCCESS", "isSuccessful": true }, - "members": [ + "regions": [ { - "memberId": "1b1d3627-507a-49ea-8cb7-c86dfa9caa58", - "memberName": "홍길동", - "emailAddress": "gildong.hong@nhn.com", - "phoneNumber": "+821012345678" + "isEnabled": false } ] } @@ -182,25 +169,19 @@ GET /v4.0/project/members GET /v4.0/db-flavors ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|------------------| -| RDSforMariaDB:DbFlavor.List | DB 인스턴스 사양 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------| -| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | -| dbFlavors.ram | Body | Number | 메모리 용량(MB) | -| dbFlavors.vcpus | Body | Number | CPU 코어 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbFlavors | Body | Array | DB 인스턴스 사양 목록 | +| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | +| dbFlavors.ram | Body | Number | 메모리 용량(MB) | +| dbFlavors.vcpus | Body | Number | CPU 코어 수 |

예시

@@ -214,9 +195,6 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbFlavorName": "m2.c1m2", - "ram": 2048, "vcpus": 1 } ] @@ -236,26 +214,20 @@ GET /v4.0/db-flavors GET /v4.0/network/subnets ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------|-----------| -| RDSforMariaDB:Network.List | 서브넷 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|---------|------------------| -| subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | UUID | 서브넷의 식별자 | -| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | -| subnets.subnetCidr | Body | String | 서브넷의 CIDR | -| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | -| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| subnets | Body | Array | 서브넷 목록 | +| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnets.subnetCidr | Body | String | 서브넷의 CIDR | +| subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | +| subnets.availableIpCount | Body | Number | 사용 가능한 IP 수 |

예시

@@ -269,11 +241,7 @@ GET /v4.0/network/subnets }, "subnets": [ { - "subnetId": "1b2a9b23-0725-4b92-8c78-35db66b8ad9f", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/24", - "usingGateway": true, - "availableIpCount": 240 + "availableIpCount": 1 } ] } @@ -292,23 +260,17 @@ GET /v4.0/network/subnets GET /v4.0/db-versions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|-------------| -| RDSforMariaDB:DbVersion.List | DB 엔진 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|---------|-----------------------| -| dbVersions | Body | Array | DB 엔진 목록 | -| dbVersions.dbVersion | Body | String | DB 엔진 유형 | -| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbVersions | Body | Array | DB 엔진 목록 | +| dbVersions.dbVersion | Body | String | DB 엔진 유형 | +| dbVersions.dbVersionName | Body | String | DB 엔진 이름 | | dbVersions.restorableFromObs | Body | Boolean | 오브젝트 스토리지로부터 복원 가능 여부 |

예시 @@ -323,9 +285,7 @@ GET /v4.0/db-versions }, "dbVersions": [ { - "dbVersion": "MARIADB_V10330", - "dbVersionName": "Maria DB 10.3.30", - "restorableFromObs": true + "restorableFromObs": false } ] } @@ -338,27 +298,21 @@ GET /v4.0/db-versions ## 데이터 스토리지 -### 데이터 스토리지 타입 목록 보기 +### 스토리지 타입 목록 보기 ```http GET /v4.0/storage-types ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------|-------------------| -| RDSforMariaDB:Storage.List | 데이터 스토리지 타입 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|-------|----------------| -| storageTypes | Body | Array | 데이터 스토리지 타입 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageTypes | Body | Array | 스토리지 타입 목록 |
예시

@@ -370,10 +324,7 @@ GET /v4.0/storage-types "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageTypes": [ - "General SSD", - "General HDD" - ] + "storageTypes": [] } ``` @@ -407,31 +358,25 @@ GET /v4.0/storage-types GET /v4.0/jobs/{jobId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------|-------------| -| RDSforMariaDB:Job.Get | 작업 정보 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------|-----|------|----|---------| -| jobId | URL | UUID | O | 작업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| jobId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------|------|----------|-----------------------------------| -| jobId | Body | UUID | 작업의 식별자 | -| jobStatus | Body | Enum | 작업의 현재 상태 | -| resourceRelations | Body | Array | 연관 리소스 목록 | -| resourceRelations.resourceType | Body | Enum | 연관 리소스 유형 | -| resourceRelations.resourceId | Body | UUID | 연관 리소스의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 | +| jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | +| resourceRelations | Body | Array | 연관 리소스 목록 | +| resourceRelations.resourceType | Body | String | 연관 리소스 유형 | +| resourceRelations.resourceId | Body | String | 연관 리소스의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -443,16 +388,15 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "0ddb042c-5af6-43fb-a914-f4dd0540eb7c", - "jobStatus": "RUNNING", + "jobId": "jobId-example", + "jobStatus": "DELETED", "resourceRelations": [ { - "resourceType": "DB_INSTANCE", - "resourceId": "56b39dcf-65eb-47ec-9d4f-09f160ba2266" + "resourceId": "resourceId-example" } ], - "createdYmdt": "2023-02-22T20:47:12+09:00", - "updatedYmdt": "2023-02-22T20:49:46+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -469,25 +413,19 @@ GET /v4.0/jobs/{jobId} GET /v4.0/db-instance-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|------------------| -| RDSforMariaDB:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------|------|----------|--------------------------------------------------------------------------| -| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | +| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -501,10 +439,7 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "05de0746-89fd-49c8-94f9-9c5b1df97009", - "replicationType": "STANDALONE", - "createdYmdt": "2023-02-13T17:35:20+09:00", - "updatedYmdt": "2023-02-13T17:35:20+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -521,32 +456,26 @@ GET /v4.0/db-instance-groups GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|------------------| -| RDSforMariaDB:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|-----------------| -| dbInstanceGroupId | URL | UUID | O | DB 인스턴스 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- `STANDALONE`: 단일
- `HIGH_AVAILABILITY`: 고가용성 | -| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | +| dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -558,17 +487,15 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "36617a8e-0df8-4b16-b6ea-6306019e95da", + "dbInstanceGroupId": "dbInstanceGroupId-example", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "6d2db0ef-fe9b-4ed4-97b1-d97fcb4cf1b8", - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE" + "dbInstanceStatus": "BEFORE_CREATE" } ], - "createdYmdt": "2023-03-03T17:38:14+09:00", - "updatedYmdt": "2023-03-03T17:38:14+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -601,8 +528,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `BACKING_UP` | 백업 중 | | `CANCELING` | 취소 중 | | `CREATING` | 생성 중 | -| `CREATING_SCHEMA` | DB 스키마 생성 중 | -| `CREATING_USER` | 사용자 생성 중 | +| `CREATING_SCHEMA` | DB 스키마 생성 중 | +| `CREATING_USER` | 사용자 생성 중 | | `DELETING` | 삭제 중 | | `DELETING_SCHEMA` | DB 스키마 삭제 중 | | `DELETING_USER` | 사용자 삭제 중 | @@ -621,8 +548,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | `STARTING` | 시작 중 | | `STOPPING` | 정지 중 | | `SYNCING_SCHEMA` | DB 스키마 동기화 중 | -| `SYNCING_USER` | 사용자 동기화 중 | -| `UPDATING_USER` | 사용자 수정 중 | +| `SYNCING_USER` | 사용자 동기화 중 | +| `UPDATING_USER` | 사용자 수정 중 | ### DB 인스턴스 목록 보기 @@ -630,32 +557,26 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.List | DB 인스턴스 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | -| dbInstances.dbPort | Body | Number | DB 포트 | -| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태 | -| dbInstances.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbInstances.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstances | Body | Array | DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | +| dbInstances.dbPort | Body | Number | DB 포트 | +| dbInstances.dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| dbInstances.progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbInstances.createdYmdt | Body | DateTime | 생성 일시 | +| dbInstances.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -669,17 +590,7 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MARIADB_V10330", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "createdYmdt": "2023-01-23T12:03:13+09:00", - "updatedYmdt": "2023-02-02T17:20:17+09:00" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -690,51 +601,123 @@ GET /v4.0/db-instances --- -### DB 인스턴스 상세 보기 +### DB 인스턴스 생성하기 ```http -GET /v4.0/db-instances/{dbInstanceId} +POST /v4.0/db-instances ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.Get | DB 인스턴스 상세 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| dbPort | Body | Number | O | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| authenticationPlugin | Body | Enum | X | 인증 Plugin
- NATIVE: `mysql_native_password 인증`
- ED25519: `ed25519 인증 (MariaDB 전용)` | +| tlsOption | Body | Enum | X | TLS Option
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE", + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 1800, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | -| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | DB 인스턴스에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| dbPort | Body | Number | DB 포트 | -| dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- `MASTER`: 마스터
- `FAILED_MASTER`: 장애 조치된 마스터
- `CANDIDATE_MASTER`: 예비 마스터
- `READ_ONLY_SLAVE`: 읽기 복제본 | -| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태 | -| progressStatus | Body | Enum | DB 인스턴스의 현재 작업 진행 상태 | -| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | -| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | -| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | -| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | -| supportAuthenticationPlugin | Body | Boolean | 인증 플러그인 지원 여부 | -| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | -| needMigration | Body | Boolean | 마이그레이션 필요 여부 | -| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -746,27 +729,7 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "d067593b-1acc-4ccc-9e8a-cc72d6d79ec3", - "dbInstanceGroupId": "51c7d080-ff36-4025-84b1-9d9d0b4fe9e0", - "dbInstanceName": "db-instance", - "description": null, - "dbVersion": "MARIADB_V10330", - "dbPort": 10000, - "dbInstanceType": "MASTER", - "dbInstanceStatus": "AVAILABLE", - "progressStatus": "NONE", - "dbFlavorId": "e9ed4ef6-78d7-46fa-ace9-32481e97f3b7", - "parameterGroupId": "b03e8b13-de27-4d04-a488-ff5689589372", - "dbSecurityGroupIds": ["01908c35-d2c9-4852-baf0-17f06ec42c03"], - "notificationGroupIds": ["83a62a33-ddbf-4a04-8653-e54463d5b1ac"], - "useDeletionProtection": false, - "useSlowQueryAnalysis": true, - "supportAuthenticationPlugin": true, - "needToApplyParameterGroup": false, - "needMigration": false, - "supportDbVersionUpgrade": true, - "createdYmdt": "2022-11-23T12:03:13+09:00", - "updatedYmdt": "2022-12-02T17:20:17+09:00" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -775,95 +738,117 @@ GET /v4.0/db-instances/{dbInstanceId} --- -### DB 인스턴스 생성하기 +### 오브젝트 스토리지를 이용한 DB 인스턴스 복원 ```http -POST /v4.0/db-instances +POST /v4.0/db-instances/restore-from-obs ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Create | DB 인스턴스 생성하기 | - -#### 요청 +#### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|-------|---------|----|---------------------------------------------------------------------| -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| dbUserName | Body | String | O | DB 사용자 계정명 | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- 기본값: `NATIVE`(미지원 시 `ED25519`)
- NATIVE: `mysql_native_password`
- ED25519: `auth_ed25519` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | O | DB 포트 | +| dbVersion | Body | Enum | O | DB 엔진 유형 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | O | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | O | 스토리지 타입 | +| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.subnetId | Body | UUID | O | 서브넷의 식별자 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| backup | Body | Object | O | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | O | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | +| restore.username | Body | String | O | NHN Cloud 계정 혹은 IAM 멤버 ID | +| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | +| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | +| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbVersion": "MARIADB_V10330", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "dbVersion": "ENUM_VALUE", + "useHighAvailability": false, + "pingInterval": 3, "storage": { - "storageType": "General SSD", - "storageSize": 20 + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" }, "backup": { - "backupPeriod": 1, + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": true, "backupSchedules": [ { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR" + "backupWndDuration": "HALF_AN_HOUR" } ] - } + }, + "restore": { + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" + }, + "useDefaultNotification": false, + "useSlowQueryAnalysis": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false } ``` @@ -872,64 +857,27 @@ POST /v4.0/db-instances #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### DB 인스턴스 수정하기 - -```http -PUT /v4.0/db-instances/{dbInstanceId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Modify | DB 인스턴스 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------|------|---------|----|---------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbPort | Body | Number | X | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| useReadOnly | Body | Boolean | X | 읽기 전용으로 변경 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -

예시

```json { - "dbInstanceName": "db-instance2", - "description": "description2", - "dbPort": 10001, - "dbSecurityGroupIds": [], - "executeBackup": true + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- ### DB 인스턴스 삭제하기 @@ -938,81 +886,89 @@ PUT /v4.0/db-instances/{dbInstanceId} DELETE /v4.0/db-instances/{dbInstanceId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Delete | DB 인스턴스 삭제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| deleteAutoBackup | Body | Boolean | X | 자동 백업 삭제 여부
- 기본값: `false` | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| deleteAutoBackup | Body | Boolean | X | 자동 백업 삭제 여부
- 기본값: `false` | -### DB 인스턴스 재시작하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/restart +```json +{ + "deleteAutoBackup": false +} ``` -#### 필요 권한 +

+
-| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.Restart | DB 인스턴스 재시작하기 | +#### 응답 -#### 요청 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | -| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| useReadOnly | Body | Boolean | X | 읽기 전용으로 변경 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | +
예시 +

-#### 응답 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### DB 인스턴스 강제 재시작하기 + +### DB 인스턴스 상세 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/force-restart +GET /v4.0/db-instances/{dbInstanceId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|------------------| -| RDSforMariaDB:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| description | Body | String | DB 인스턴스에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| dbPort | Body | Number | DB 포트 | +| dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | +| dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | +| progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | +| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | +| notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | +| useSlowQueryAnalysis | Body | Boolean | Slow query 분석 여부 | +| supportAuthenticationPlugin | Body | Boolean | 인증 plugin 지원 여부 | +| needToApplyParameterGroup | Body | Boolean | 최신 파라미터 그룹 적용 필요 여부 | +| needMigration | Body | Boolean | 마이그레이션 필요 여부 | +| supportDbVersionUpgrade | Body | Boolean | DB 버전 업그레이드 지원 여부 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -1023,329 +979,333 @@ POST /v4.0/db-instances/{dbInstanceId}/force-restart "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "dbFlavorId": "dbFlavorId-example", + "parameterGroupId": "parameterGroupId-example", + "dbSecurityGroupIds": [], + "notificationGroupIds": [], + "useDeletionProtection": false, + "useSlowQueryAnalysis": false, + "supportAuthenticationPlugin": false, + "needToApplyParameterGroup": false, + "needMigration": false, + "supportDbVersionUpgrade": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

- --- -### DB 인스턴스 시작하기 +### DB 인스턴스 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/start +PUT /v4.0/db-instances/{dbInstanceId} ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Start | DB 인스턴스 시작하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | X | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbVersion | Body | Enum | X | DB 엔진 버전 코드 | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부 | +| useDummy | Body | Boolean | X | 단일 DB 인스턴스의 DB 버전 업그레이드 시 더미 사용 여부
- 기본값: `false` | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbInstanceName": "dbInstanceName", + "dbInstanceCandidateName": "dbInstanceCandidateName", + "description": "description-example", + "dbPort": 1, + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "ENUM_VALUE", + "useSlowQueryAnalysis": false, + "useDummy": false, + "dbSecurityGroupIds": [], + "executeBackup": false, + "useOnlineFailover": false, + "waitReplicationDelay": false, + "useReadOnly": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### DB 인스턴스 정지하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/stop +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Stop | DB 인스턴스 정지하기 | - -#### 요청 - -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +

+
--- -### DB 인스턴스 복제하기 +### 백업 정보 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/replicate +GET /v4.0/db-instances/{dbInstanceId}/backup-info ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. -| 권한명 | 설명 | -|--------------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Replicate | DB 인스턴스 복제하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록
- 기본값: 원본 DB 인스턴스 값 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: 원본 DB 인스턴스 값 | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 기본값: 원본 DB 인스턴스 값
- 예시: `General SSD` | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `10` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00`
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간
- 기본값: 원본 DB 인스턴스 값 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backupPeriod | Body | Number | 백업 보관 기간(일) | +| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | +| backupRetryCount | Body | Number | 백업 재시도 횟수 | +| replicationRegion | Body | Enum | 백업 복제 리전
- KR1: `한국(판교)` | +| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration
- HALF_AN_HOUR
- ONE_HOUR
- ONE_HOUR_AND_HALF
- TWO_HOURS
- TWO_HOURS_AND_HALF
- THREE_HOURS |
예시

```json { - "dbInstanceName": "db-instance-replicate", - "description": "description", - "dbPort": 11000, - "network": { - "availabilityZone": "kr-pub-a" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "storage": { - "stroageSize": 100 - } + "backupPeriod": 1, + "ftwrlWaitTimeout": 1, + "backupRetryCount": 1, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 인스턴스 승격하기 +### 백업 정보 수정하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/promote +PUT /v4.0/db-instances/{dbInstanceId}/backup-info ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Promote | DB 인스턴스 승격하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "backupPeriod": 0, + "ftwrlWaitTimeout": 0, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 인스턴스 재구축하기 +### 바이너리 로그 목록 보기 ```http -POST /v4.0/db-instances/{dbInstanceId}/rebuild +GET /v4.0/db-instances/{dbInstanceId}/binlogs ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.Rebuild | DB 인스턴스 재구축하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - ---- +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| binLogs | Body | Array | BinLog 파일 목록 | +| binLogs.binLogFileName | Body | String | BinLog 파일 이름 | +| binLogs.binLogFileSize | Body | Number | BinLog 파일 크기 (Byte) | +| binLogs.createdYmdt | Body | DateTime | 생성 일시 | -### 복원 정보 조회 +
예시 +

-```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "binLogs": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.Get | DB 인스턴스 상세 보기 | - -#### 요청 +

+
-| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +--- -#### 응답 +### 바이너리 로그 삭제 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | -| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | -| restorableBackups | Body | Array | 복원 가능한 백업 목록 | -| restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | -| restorableBackups.backup.backupName | Body | String | 백업 이름 | -| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | -| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동 | -| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- `BACKING_UP`: 백업 중인 경우
- `COMPLETED`: 백업이 완료된 경우
- `DELETING`: 백업이 삭제 중인 경우
- `DELETED`: 백업이 삭제된 경우
- `ERROR`: 오류가 발생한 경우 | -| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| restorableBackups.backup.dbVersion | Body | String | DB 엔진 유형 | -| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | -| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| restorableBackups.backup.binLogPosition | Body | Number | 바이너리 로그 파일 위치 | -| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | -| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | -| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 | +```http +POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge +``` +#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| lastBinLogFileName | Body | String | O | 삭제할 마지막 BinLog 파일 이름 (해당 파일 직전까지 삭제됨) |
예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "oldestRestorableYmdt": "2023-07-09T16:33:33+09:00", - "latestRestorableYmdt": "2023-07-10T15:44:44+09:00", - "restorableBackups": [ - { - "backup": { - "backupId": "145d889a-fe08-474f-8f58-bde576ff96a9", - "backupName": "example-backup-name", - "backupStatus": "COMPLETED", - "dbInstanceId": "dba1be25-9429-4589-9716-7fb6daad7cb9", - "dbInstanceName": "original-db-instance-name", - "dbVersion": "MARIADB_V10330", - "backupType": "MANUAL", - "backupSize": 8299904, - "useBackupLock": true, - "failoverCount": 0, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 367916037, - "createdYmdt": "2023-07-10T15:44:44+09:00", - "updatedYmdt": "2023-07-10T15:46:07+09:00" - }, - "restorableBinLogs": [ - "mysql-bin.000001" - ] - } - ] + "lastBinLogFileName": "mysql-bin.000010" } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 복원될 마지막 쿼리 조회 +### 인증서 파일 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query +GET /v4.0/db-instances/{dbInstanceId}/certificates ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.Get | DB 인스턴스 상세 보기 | - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|------|----|-----------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restoreType | Query | Enum | O | 복원 타입 종류
- `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
- `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입 | - -#### restoreType이 `TIMESTAMP`인 경우 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-------|----------|----|-------------------------------------------| -| restoreYmdt | Query | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +#### 요청 -#### restoreType이 `BINLOG`인 경우 +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------|-------|--------|----|--------------------| -| backupId | Query | UUID | O | 복원에 사용할 백업의 식별자 | -| binLogFileName | Query | String | O | 복원에 사용할 바이너리 로그 이름 | -| binLogPosition | Query | Number | O | 복원에 사용할 바이너리 로그 위치 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------|------|----------|--------------------------------------| -| executedYmdt | Body | DateTime | 쿼리 수행 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| lastQuery | Body | String | 마지막 수행 쿼리 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| certificates | Body | Array | 인증서 파일 목록 | +| certificates.fileName | Body | String | 인증서 파일 이름 | +| certificates.certificateType | Body | Enum | 인증서 타입
- CA_FILE
- CERT_FILE
- KEY_FILE | +| certificates.fileSize | Body | Number | 인증서 파일 크기(Byte) | +| certificates.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -1357,8 +1317,11 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query "resultMessage": "SUCCESS", "isSuccessful": true }, - "executedYmdt": "2023-03-17T14:02:29+09:00", - "lastQuery": "INSERT INTO `test`.`test`SET @1='0123'" + "certificates": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -1367,328 +1330,132 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query --- -### 복원 +### 인증서 파일 내보내기 ```http -POST /v4.0/db-instances/{dbInstanceId}/restore +POST /v4.0/db-instances/{dbInstanceId}/certificates/upload ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Restore | DB 인스턴스 복원하기 | - -#### 공통 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| restore | Body | Object | O | 복원 정보 객체 | -| restore.restoreType | Body | Enum | O | 복원 타입 종류
- `TIMESTAMP`: 복원 가능한 시간 이내의 시간을 이용한 시점 복원 타입
- `BINLOG`: 복원 가능한 바이너리 로그 위치를 이용한 시점 복원 타입
- `BACKUP`: 기존에 생성한 백업을 이용한 스냅숏 복원 타입 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 고가용성 사용 시 필수 | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a`
- 기본값: 랜덤 선택 | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 예시: `General SSD`
- 기본값: 원본 DB 인스턴스 값 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | - -#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|----------|----|------------------------------------------------------------------------------------------------| -| restore.restoreYmdt | Body | DateTime | O | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD)
복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. | +#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| certificateTypes | Body | Array | O | 업로드할 인증서 타입 목록 | +| tenantId | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 인증서 파일의 경로 |

예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "TIMESTAMP", - "restoreYmdt": "2023-07-10T15:44:44+09:00" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "certificateTypes": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ```

-#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------------------|------|--------|----|--------------------| -| restore.backupId | Body | UUID | O | 복원에 사용할 백업의 식별자 | -| restore.binLog | Body | Object | O | 바이너리 로그 정보 객체 | -| restore.binLog.binLogFileName | Body | String | O | 복원에 사용할 바이너리 로그 이름 | -| restore.binLog.binLogPosition | Body | Number | O | 복원에 사용할 바이너리 로그 위치 | - -* 바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그를 복원할 수 있습니다. +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BINLOG", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36", - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 1234567 - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) +--- + +### DB 스키마 목록 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/db-schemas +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|------|------------------------------|-----------------| -| restore.backupId | Body | UUID | O(restoreType이 `BACKUP`인 경우) | 복원에 사용할 백업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +#### 응답 +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSchemas | Body | Array | DB 스키마 목록 | +| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | +| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | +| dbSchemas.createdYmdt | Body | DateTime | 생성 일시 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "restoreType": "BACKUP", - "backupId":"3ae7914f-9b42-4729-b125-87417b72cf36" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "dbSchemas": [ + { + "createdYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - - --- -### 오브젝트 스토리지로부터 복원 +### DB 스키마 생성하기 ```http -POST /v4.0/db-instances/restore-from-obs +POST /v4.0/db-instances/{dbInstanceId}/db-schemas ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------------|-------------------------| -| RDSforMariaDB:DbInstance.RestoreFromObs | DB 인스턴스 오브젝트 스토리지로부터 복원 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------------------------------------|------|---------|----|----------------------------------------------------------------------------------------| -| restore | Body | Object | O | 복원 정보 객체 | -| restore.tenantId | Body | String | O | 백업이 저장된 오브젝트 스토리지의 테넌트 ID | -| restore.username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| restore.password | Body | String | O | 백업이 저장된 오브젝트 스토리지의 API 비밀번호 | -| restore.targetContainer | Body | String | O | 백업이 저장된 오브젝트 스토리지의 컨테이너 | -| restore.objectPath | Body | String | O | 컨테이너에 저장된 백업의 경로 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | O | DB 인스턴스 사양의 식별자 | -| dbPort | Body | Number | O | DB 포트
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | O | 파라미터 그룹의 식별자 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | O | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | O | 서브넷의 식별자 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a` | -| storage | Body | Object | O | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | O | 데이터 스토리지 타입
- 예시: `General SSD` | -| storage.storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | O | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | O | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | O | 예정된 자동 백업 목록 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | - - +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaName | Body | String | O | DB 스키마 이름
- 최대 길이: `64`
- 영문 시작, 영문/숫자/_ 허용, 1~64자, MySQL 예약어 불가 |
예시

```json { - "dbInstanceName": "db-instance", - "description": "description", - "dbFlavorId": "71f69bf9-3c01-4c1a-b135-bb75e93f6268", - "dbPort": 10000, - "dbVersion": "MARIADB_V10330", - "dbUserName": "db-user", - "dbPassword": "password", - "parameterGroupId": "488bf4f5-d8f7-459b-ace6-529b606c8570", - "dbSecurityGroupIds": [ - "b0483a3d-e8e2-46f6-9e84-d5e31b0d44f4" - ], - "userGroupIds": [], - "network": { - "subnetId": "3ae7914f-9b42-4729-b125-87417b72cf36", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 - }, - "restore": { - "tenantId":"tenant-id", - "username":"username", - "password":"password", - "targetContainer":"targetContainer", - "objectPath":"objectPath" - }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] - } + "dbSchemaName": "dbSchemaName-example" } ``` @@ -1697,36 +1464,49 @@ POST /v4.0/db-instances/restore-from-obs #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

---- +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` +

+
+ +--- -### DB 인스턴스 삭제 보호 설정 변경하기 +### DB 스키마 삭제하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection +DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -1737,7 +1517,8 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1746,58 +1527,36 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection --- -### 고가용성 상태 - -| 상태 | 설명 | -|----------------------------------|---------------------------------| -| `CREATED` | 고가용성이 생성된 경우 | -| `STABLE` | 고가용성이 정상인 경우 | -| `PAUSING` | 고가용성이 일시 중지 중인 경우 | -| `PAUSED` | 고가용성이 일시 중지된 경우 | -| `PAUSED_DUE_TO_TASK` | 작업으로 인해 고가용성이 일시 중지된 경우 | -| `DISABLE_MASTER_IN_REPLICATION` | 마스터 비정상 복제 감지로 고가용성이 중단된 경우 | -| `DISABLE_MHA_PROCESS` | 고가용성 프로세스가 중단된 경우 | -| `DISABLE_REPLICATION_STOP` | 복제 중단으로 인해 고가용성이 중단된 경우 | -| `DISABLE_REPLICATION_DELAY` | 복제 지연으로 인해 고가용성이 중단된 경우 | -| `MASTER_FAILURE_DETECTION` | 마스터 장애가 감지된 경우 | -| `FAILOVER_STARTED` | 장애 조치가 시작된 경우 | -| `FAILOVER_FAILED` | 장애 조치가 실패한 경우 | -| `FAILOVER_COMPLETED` | 장애 조치가 완료된 경우 | -| `DELETED` | 고가용성이 삭제된 경우 | - ---- - -### 고가용성 정보 보기 +### DB 사용자 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/high-availability +GET /v4.0/db-instances/{dbInstanceId}/db-users ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|------------| -| RDSforMariaDB:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|---------|---------------------------------------------------------------------------------------------------------------------| -| useHighAvailability | Body | Boolean | 고가용성 사용 여부 | -| haStatus | Body | Enum | 고가용성 상태 | -| pingInterval | Body | Number | Ping 간격(초) | -| pingType | Body | Enum | Ping 타입
- `INSERT`
- `SELECT` | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbUsers | Body | Array | DB 사용자 목록 | +| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | +| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | +| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- STABLE
- CREATING
- UPDATING
- SYNCING
- DELETING
- DELETED | +| dbUsers.createdYmdt | Body | DateTime | 생성 일시 | +| dbUsers.updatedYmdt | Body | DateTime | 수정 일시 | +| dbUsers.authenticationPlugin | Body | Enum | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- ED25519: `ed25519 인증 (MariaDB 전용)` | +| dbUsers.tlsOption | Body | Enum | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` |

예시 -

```json @@ -1807,193 +1566,249 @@ GET /v4.0/db-instances/{dbInstanceId}/high-availability "resultMessage": "SUCCESS", "isSuccessful": true }, - "useHighAvailability": true, - "haStatus": "STABLE", - "pingInterval": 3, - "pingType": "INSERT" + "dbUsers": [ + { + "tlsOption": "NONE" + } + ] } ```

-
--- -### 고가용성 수정하기 +### DB 사용자 생성하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/high-availability +POST /v4.0/db-instances/{dbInstanceId}/db-users ``` -#### 필요 권한 +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserName | Body | String | O | DB 사용자 계정명
- 최소 길이: `1`
- 최대 길이: `32` | +| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| host | Body | String | O | DB 사용자 계정의 호스트명
- 최대 길이: `45` | +| authorityType | Body | Enum | O | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- ED25519: `ed25519 인증 (MariaDB 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- 기본값: `NONE`
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMariaDB:HighAvailability.Modify | 고가용성 수정하기 | +
예시 +

-#### 요청 +```json +{ + "dbUserName": "dbUserName", + "dbPassword": "dbPassword", + "host": "host-example", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|---------|----|------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- `INSERT`
- `SELECT` | -| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 고가용성 사용 시 필수값 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 고가용성 다시 시작하기 +### DB 사용자 삭제하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume +DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------------|--------------| -| RDSforMariaDB:HighAvailability.Resume | 고가용성 다시 시작하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### 고가용성 일시 중지하기 +
예시 +

-```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} ``` -#### 필요 권한 +

+
-| 권한명 | 설명 | -|----------------------------------------------------|--------------| -| RDSforMariaDB:HighAvailability.Pause | 고가용성 일시 중지하기 | +--- -#### 요청 +### DB 사용자 수정하기 -이 API는 요청 본문을 요구하지 않습니다. +```http +PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbUserId | URL | UUID | O | DB 사용자의 식별자 | +| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | +| authorityType | Body | Enum | X | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | +| authenticationPlugin | Body | Enum | X | 사용자 인증 플러그인
- NATIVE: `mysql_native_password 인증`
- ED25519: `ed25519 인증 (MariaDB 전용)` | +| tlsOption | Body | Enum | X | 인증서 옵션
- NONE: `TLS 미사용`
- SSL: `SSL 인증`
- X509: `X509 인증서 인증` | + +
예시 +

+ +```json +{ + "dbPassword": "dbPassword", + "authorityType": "CUSTOM", + "authenticationPlugin": "NATIVE", + "tlsOption": "NONE" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 고가용성 복구하기 +### DB 인스턴스 삭제 보호 설정 변경 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair +PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------------|-----------| -| RDSforMariaDB:HighAvailability.Repair | 고가용성 복구하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useDeletionProtection | Body | Boolean | O | 삭제 보호 여부 | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "useDeletionProtection": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 고가용성 분리하기 +### DB 인스턴스 강제 재시작하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/high-availability/split +POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|-----------| -| RDSforMariaDB:HighAvailability.Split | 고가용성 분리하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 데이터 스토리지 정보 보기 +### 고가용성 정보 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/storage-info +GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|---------|--------------------------------------------------------------------------------------| -| storageType | Body | Enum | 데이터 스토리지 타입 | -| storageSize | Body | Number | 데이터 스토리지 크기(GB) | -| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- `DETACHED`: 부착되지 않음
- `ATTACHED`: 부착됨
- `DELETED`: 삭제됨 | -| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | -| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | -| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| useHighAvailability | Body | Boolean | 고가용성 사용 여부
- 기본값: `false` | +| haStatus | Body | Enum | 고가용성 상태
- CREATED: `생성됨`
- STABLE: `정상`
- PAUSING: `일시 중지 중`
- DISABLE: `정지`
- DISABLE_MASTER_IN_REPLICATION: `마스터 비정상 복제 감지로 인한 고가용성 중단`
- DISABLE_MHA_PROCESS: `고가용성 프로세스 중단`
- DISABLE_REPLICATION_STOP: `복제 중단으로 인한 고가용성 중단`
- DISABLE_REPLICATION_DELAY: `복제 지연으로 인한 고가용성 중단`
- FAILOVER_STARTED: `장애 조치 시작`
- FAILOVER_FAILED: `장애 조치 실패`
- FAILOVER_COMPLETED: `장애 조치 완료`
- DELETED: `삭제됨`
- PAUSED: `일시 중지`
- PAUSED_DUE_TO_TASK: `작업으로 인한 일시 중지`
- MASTER_FAILURE_DETECTION: `마스터 장애 감지` | +| pingInterval | Body | Number | Ping 간격(초) | +| pingType | Body | String | Ping 방식 |
예시

@@ -2005,89 +1820,95 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "General SSD", - "storageSize": 20, - "storageStatus": "ATTACHED", - "storageAutoscale": { - "useStorageAutoscale": true, - "threshold": 80, - "maxStorageSize": 100, - "cooldownTime": 10 - } + "useHighAvailability": false, + "haStatus": "CREATED", + "pingInterval": 1, + "pingType": "pingType-example" } ```

- --- -### 데이터 스토리지 정보 수정하기 +### 고가용성 수정하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/storage-info +PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Modify | DB 인스턴스 수정하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useHighAvailability | Body | Boolean | O | 고가용성 사용 여부 | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | -#### 요청 +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +
예시 +

+ +```json +{ + "useHighAvailability": false, + "pingInterval": 1 +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------------|------|---------|----|---------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최솟값: 현재값
- 최댓값: `2048` | -| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
고가용성을 사용 중인 DB 인스턴스에서만 사용 가능합니다.
- 기본값: `false` | -| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -| storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | -| storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | -| storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### 백업 정보 보기 +### 고가용성 일시 중지하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/backup-info +POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|---------|----------------| -| backupPeriod | Body | Number | 백업 보관 기간(일) | -| ftwrlWaitTimeout | Body | Number | 쿼리 지연 대기 시간(초) | -| backupRetryCount | Body | Number | 백업 재시도 횟수 | -| replicationRegion | Body | Enum | 백업 복제 리전 | -| useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | 백업 시작 시각 | -| backupSchedules.backupWndDuration | Body | Enum | 백업 Duration | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2099,111 +1920,73 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "backupPeriod": 1, - "ftwrlWaitTimeout": 1800, - "backupRetryCount": 0, - "replicationRegion": null, - "useBackupLock": false, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "ONE_HOUR_AND_HALF" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### 백업 정보 수정하기 +### 고가용성 복구하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/backup-info +POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Modify | DB 인스턴스 수정하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------------------------|------|---------|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | -| ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | -| backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | -| useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | -| backupSchedules | Body | Array | X | 예정된 자동 백업 목록 | -| backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "backupPeriod": 5, - "useBackupLock": true, - "backupSchedules": [ - { - "backupWndBgnTime": "01:00:00", - "backupWndDuration": "TWO_HOURS" - } - ] + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 네트워크 정보 보기 +### 고가용성 다시 시작하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/network-info +POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------|---------------| -| RDSforMariaDB:DbInstance.Get | DB 인스턴스 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|--------|-----------------------------------------------------------------------------------------------------------------------------------------| -| availabilityZone | Body | Enum | DB 인스턴스를 생성할 가용성 영역 | -| subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | UUID | 서브넷의 식별자 | -| subnet.subnetName | Body | UUID | 서브넷을 식별할 수 있는 이름 | -| subnet.subnetCidr | Body | UUID | 서브넷의 CIDR | -| endPoints | Body | Array | 접속 정보 목록 | -| endPoints.domain | Body | String | 도메인 | -| endPoints.ipAddress | Body | String | IP 주소 | -| endPoints.endPointType | Body | Enum | 접속 정보 타입
-`EXTERNAL`: 외부 접속 도메인
-`INTERNAL`: 내부 접속 도메인
-`PUBLIC`: (Deprecated) 외부 접속 도메인
-`PRIVATE`: (Deprecated) 내부 접속 도메인 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2215,19 +1998,7 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "kr-pub-a", - "subnet": { - "subnetId": "bd453789-34ae-416c-9f78-05b9e43a46be", - "subnetName": "Default Network", - "subnetCidr": "192.168.0.0/16" - }, - "endPoints": [ - { - "domain": "ea548a78-d85f-43b4-8ddf-c88d999b9905.internal.kr1.mariadb.rds.nhncloudservice.com", - "ipAddress": "192.168.0.2", - "endPointType": "INTERNAL" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2236,66 +2007,68 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info --- -### 네트워크 정보 수정하기 +### 고가용성 분리하기 ```http -PUT /v4.0/db-instances/{dbInstanceId}/network-info +POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------------|--------------| -| RDSforMariaDB:DbInstance.Modify | DB 인스턴스 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|---------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 사용자 목록 보기 +### 로그 파일 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/db-users +GET /v4.0/db-instances/{dbInstanceId}/log-files ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------------|---------------------| -| RDSforMariaDB:DbInstanceUser.List | DB 인스턴스 내 사용자 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|-----------------------------------------------------------------------------------------------------------------------------| -| dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | -| dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | -| dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | -| dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| dbUsers.dbUserStatus | Body | Enum | DB 사용자의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `UPDATING`: 수정 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbUsers.authenticationPlugin | Body | Enum | 인증 플러그인
- NATIVE: `mysql_native_password`
- ED25519: `auth_ed25519` | -| dbUsers.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbUsers.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| logFiles | Body | Array | 로그 파일 목록 | +| logFiles.logFileName | Body | String | 로그 파일 이름 | +| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- ERROR
- BINLOG
- GENERAL
- SLOW_QUERY
- AUDIT
- BACKUP | +| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | +| logFiles.createdYmdt | Body | DateTime | 생성 일시 |
예시

@@ -2307,15 +2080,9 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbUsers": [ + "logFiles": [ { - "dbUserId": "4b3d530b-fd02-4d59-a620-83d019a67bbb", - "dbUserName": "db-user", - "host": "%", - "authorityType": "DDL", - "dbUserStatus": "STABLE", - "createdYmdt": "2023-03-17T14:02:29+09:00", - "updatedYmdt": "2023-03-17T14:02:31+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2326,39 +2093,35 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users --- -### DB 사용자 생성하기 +### 로그 파일 내보내기 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-users +POST /v4.0/db-instances/{dbInstanceId}/log-files/export ``` - -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMariaDB:DbInstanceUser.Create | DB 인스턴스 내 사용자 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserName | Body | String | O | DB 사용자 계정 이름
- 최소 길이: `1`
- 최대 길이: `32` | -| dbPassword | Body | String | O | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| host | Body | String | O | DB 사용자 계정의 호스트명
- 예시: `1.1.1.%` | -| authorityType | Body | Enum | O | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- 기본값: `NATIVE`(미지원 시 `ED25519`)
- NATIVE: `mysql_native_password`
- ED25519: `auth_ed25519` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | | +| logFileNames | Body | Array | O | 로그 파일 이름 목록 | +| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 회원 또는 IAM 멤버 ID | +| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 |

예시

```json { - "dbUserName": "db-user", - "dbPassword": "password", - "host": "1.1.1.%", - "authorityType": "CRUD" + "logFileNames": [], + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -2367,112 +2130,105 @@ POST /v4.0/db-instances/{dbInstanceId}/db-users #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### DB 사용자 수정하기 - -```http -PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMariaDB:DbInstanceUser.Modify | DB 인스턴스 내 사용자 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | -| dbPassword | Body | String | X | DB 사용자 계정 암호
- 최소 길이: `4`
- 최대 길이: `256` | -| authorityType | Body | Enum | X | DB 사용자 권한 타입
- `READ`: SELECT 쿼리 수행 가능한 권한
- `CRUD`: DML 쿼리 수행 가능한 권한
- `DDL`: DDL 쿼리 수행 가능한 권한
| -| authenticationPlugin | Body | Enum | X | 인증 플러그인
- NATIVE: `mysql_native_password`
- ED25519: `auth_ed25519` | -

예시

```json { - "authorityType": "DDL" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### DB 사용자 삭제하기 +### 로그 파일 내용 보기 ```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} +GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------------| -| RDSforMariaDB:DbInstanceUser.Delete | DB 인스턴스 내 사용자 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbUserId | URL | UUID | O | DB 사용자의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| logFileName | URL | UUID | O | 로그 파일 이름 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| content | Body | String | 로그 파일 내용 (최대 65533 bytes) | + +
예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "content": "content-example" +} +``` + +

+
--- -### DB 스키마 목록 보기 +### DB 인스턴스 유지 관리 목록 보기 ```http -GET /v4.0/db-instances/{dbInstanceId}/db-schemas +GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|---------------------| -| RDSforMariaDB:DbInstanceSchema.List | DB 인스턴스 내 스키마 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| type | Query | String | X | | +| statuses | Query | String | X | | +| category | Query | String | X | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|------------------------------------------------------------------------------------------------------| -| dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | -| dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | -| dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- `STABLE`: 생성됨
- `CREATING`: 생성 중
- `DELETING`: 삭제 중
- `DELETED`: 삭제됨 | -| dbSchemas.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 유지 관리 목록 갯수 | +| maintenances | Body | Array | 유지 관리 목록 | +| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| maintenances.description | Body | String | 유지 관리 설명 | +| maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| maintenances.payload | Body | Object | 유지 관리 타입에 따른 Payload | +| maintenances.required | Body | Boolean | 유지 관리 필수 여부 | +| maintenances.deadlineYmdt | Body | DateTime | 유지 관리 강제 적용 일시 | +| maintenances.status | Body | Enum | 유지 관리 상태
- PENDING: `대기`
- READY: `준비`
- RUNNING: `실행 중`
- COMPLETED: `완료`
- FAILED: `실패`
- EXCLUDED: `제외`
- DELETED: `삭제`
- UNKNOWN | +| maintenances.executionType | Body | Enum | 유지 관리 실행 타입
- SCHEDULED: `예약 실행 (유지 관리 기간 자동 실행)`
- MANUAL: `수동 실행 (즉시 실행)`
- FORCED: `강제 실행 (데드라인 초과 자동 실행)` | +| maintenances.addedYmdt | Body | DateTime | 유지 관리 스케줄 등록 일시 | +| maintenances.executionStartedYmdt | Body | DateTime | 유지 관리 시작 일시 | +| maintenances.executionCompletedYmdt | Body | DateTime | 유지 관리 종료 일시 |
예시

@@ -2484,12 +2240,10 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSchemas": [ + "totalCounts": 1, + "maintenances": [ { - "dbSchemaId": "7c9a94b8-86c1-435d-8af2-82a5e9d53fd4", - "dbSchemaName": "schema", - "dbSchemaStatus": "STABLE", - "createdYmdt": "2023-03-20T13:37:45+09:00" + "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -2500,93 +2254,151 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas --- -### DB 스키마 생성하기 +### DB 인스턴스 유지 관리 즉시 실행하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/db-schemas +POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMariaDB:DbInstanceSchema.Create | DB 인스턴스 내 스키마 생성하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload | -#### 요청 +

예시 +

+ +```json +{ + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|--------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaName | Body | String | O | DB 스키마 이름 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | ---- - -### DB 스키마 삭제하기 +
예시 +

-```http -DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} ``` -#### 필요 권한 +

+
+ +--- + +### DB 인스턴스 유지 관리 예약하기 -| 권한명 | 설명 | -|-----------------------------------------------------|--------------------| -| RDSforMariaDB:DbInstanceSchema.Delete | DB 인스턴스 내 스키마 삭제하기 | +```http +POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule +``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| configId | Body | String | O | 설정 아이디 | +| category | Body | Enum | O | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | +| description | Body | String | X | 유지 관리 설명 | +| type | Body | Enum | O | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | +| payload | Body | String | O | 유지 관리 타입에 따른 Payload | + +
예시 +

+ +```json +{ + "configId": "configId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": "payload-example" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|--------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| dbSchemaId | URL | UUID | O | DB 스키마의 식별자 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 로그 파일 목록 보기 +### DB 인스턴스 유지 관리 삭제하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/log-files +DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| maintenanceId | URL | UUID | O | 유지 관리 아이디 | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. -| 권한명 | 설명 | -|------------------------------------------------|-----------------------| -| RDSforMariaDB:DbInstanceLog.List | DB 인스턴스 내 로그 파일 목록 보기 | +--- + +### 네트워크 정보 보기 + +```http +GET /v4.0/db-instances/{dbInstanceId}/network-info +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|-------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileTypes | Query | Array | X | 로그 파일 타입 종류 목록
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| logFiles | Body | Array | 로그 파일 목록 | -| logFiles.logFileName | Body | String | 로그 파일명 | -| logFiles.logFileType | Body | Enum | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | -| logFiles.logFileSize | Body | Number | 로그 파일 크기(Byte) | -| logFiles.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | +| subnet | Body | Object | 서브넷 객체 | +| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | +| subnet.subnetCidr | Body | String | 서브넷의 CIDR | +| endPoints | Body | Array | 접속 정보 목록 | +| endPoints.domain | Body | String | 도메인 | +| endPoints.ipAddress | Body | String | IP 주소 | +| endPoints.endPointType | Body | String | 접속 정보 타입 |
예시

@@ -2598,12 +2410,15 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files "resultMessage": "SUCCESS", "isSuccessful": true }, - "logFiles": [ + "availabilityZone": "availabilityZone-example", + "subnet": { + "subnetId": "subnetId-example", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example" + }, + "endPoints": [ { - "logFileName": "xtra_full.log-20230317", - "logFileType": "BACKUP", - "logFileSize": 4096, - "createdYmdt": "2023-03-17T14:02:29+09:00" + "endPointType": "endPointType-example" } ] } @@ -2614,33 +2429,36 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files --- -### 로그 파일 내용 보기 +### 네트워크 정보 수정하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} +PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-----------------------------------------------|-----------------------| -| RDSforMariaDB:DbInstanceLog.Get | DB 인스턴스 내 로그 파일 내용 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| usePublicAccess | Body | Boolean | O | 외부 접속 가능 여부 | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "usePublicAccess": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|--------|----|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileName | URL | String | O | 로그 파일명 | -| logFileType | Query | Enum | O | 로그 파일 타입 종류
- `ERROR`: error.log
- `BINLOG`: mysql-bin
- `GENERAL`: general.log
- `SLOW_QUERY`: slow_query.log
- `AUDIT`: server_audit.log
- `BACKUP`: xtra_full.log | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------|------|--------|---------------------------| -| content | Body | String | 로그 파일 내용(최대 65533 Bytes) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2652,7 +2470,7 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} "resultMessage": "SUCCESS", "isSuccessful": true }, - "content": "..." + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2661,84 +2479,64 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} --- -### 로그 파일 내보내기 +### DB 인스턴스 승격하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/log-files/export +POST /v4.0/db-instances/{dbInstanceId}/promote ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. -| 권한명 | 설명 | -|--------------------------------------------------|----------------------| -| RDSforMariaDB:DbInstanceLog.Export | DB 인스턴스 내 로그 파일 내보내기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|--------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| logFileNames | Body | Array | O | 로그 파일명 목록
- 최소 크기: `1` | -| tenantId | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 로그 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 로그 파일의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "logFileNames": ["xtra_full.log-20230317"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "logs/backup" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### BinLog 목록 보기 +### DB 인스턴스 재구축하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/binlogs +POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|---------------| -| RDSforMariaDB:DbInstanceBinLog.List | BinLog 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|---------|----|---------------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| deletable | Query | Boolean | X | 삭제 가능한 BinLog만 조회할지 여부
- `true`: 마지막 BinLog 제외
- `false`: 전체
- 기본값: `false` | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------|------|----------|-----------------------------------| -| binLogs | Body | Array | BinLog 파일 목록 | -| binLogs.binLogFileName | Body | String | BinLog 파일명 | -| binLogs.binLogFileSize | Body | Number | BinLog 파일 크기(Byte) | -| binLogs.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -2750,13 +2548,7 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs "resultMessage": "SUCCESS", "isSuccessful": true }, - "binLogs": [ - { - "binLogFileName": "mysql-bin.000001", - "binLogFileSize": 1073741824, - "createdYmdt": "2023-03-17T14:02:29+09:00" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2765,31 +2557,91 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs --- -### BinLog 삭제 +### DB 인스턴스 복제하기 ```http -POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge +POST /v4.0/db-instances/{dbInstanceId}/replicate ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|------------| -| RDSforMariaDB:DbInstanceBinLog.Purge | BinLog 삭제 | - -#### 요청 +#### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| lastBinLogFileName | Body | String | O | 삭제할 마지막 BinLog 파일명(해당 파일 직전까지 삭제됩니다) | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자 | +| dbPort | Body | Number | X | DB 포트
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | O | 네트워크 정보 객체 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부 | +| network.availabilityZone | Body | Enum | O | DB 인스턴스를 생성할 가용성 영역 | +| storage | Body | Object | X | 스토리지 정보 객체 | +| storage.storageType | Body | Enum | X | 데이터 스토리지 타입 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록 | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |

예시

```json { - "lastBinLogFileName": "mysql-bin.000010" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } } ``` @@ -2798,7 +2650,9 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

@@ -2809,7 +2663,8 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2818,164 +2673,99 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge --- -### 인증서 파일 목록 보기 +### DB 인스턴스 재시작하기 ```http -GET /v4.0/db-instances/{dbInstanceId}/certificates +POST /v4.0/db-instances/{dbInstanceId}/restart ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|---------------| -| RDSforMariaDB:DbInstanceCertificate.List | 인증서 파일 목록 보기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-----|------|----|---------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|----------|------------------------------------------------------------------------------| -| certificates | Body | Array | 인증서 파일 목록 | -| certificates.fileName | Body | String | 인증서 파일명 | -| certificates.certificateType | Body | Enum | 인증서 타입
- `CA_FILE`: CA 인증서
- `CERT_FILE`: 인증서
- `KEY_FILE`: 비밀 키 | -| certificates.fileSize | Body | Number | 인증서 파일 크기(Byte) | -| certificates.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| useOnlineFailover | Body | Boolean | X | 장애 조치를 이용한 재시작 여부
- 기본값: `false` | +| executeBackup | Body | Boolean | X | 현재 시점 백업 진행 여부
- 기본값: `false` | +| waitReplicationDelay | Body | Boolean | X | 복제 지연 해소 대기
- 기본값: `false` | +| useReadOnly | Body | Boolean | X | 쓰기 부하 차단
- 기본값: `false` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "certificates": [ - { - "fileName": "ca.pem", - "certificateType": "CA_FILE", - "fileSize": 2048, - "createdYmdt": "2023-03-17T14:02:29+09:00" - } - ] + "useOnlineFailover": false, + "executeBackup": false, + "waitReplicationDelay": false, + "useReadOnly": false } ```

---- - -### 인증서 파일 내보내기 - -```http -POST /v4.0/db-instances/{dbInstanceId}/certificates/upload -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------------|-------------| -| RDSforMariaDB:DbInstanceCertificate.Export | 인증서 파일 내보내기 | - -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|--------|----|------------------------------------------------------------------------------| -| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | -| certificateTypes | Body | Array | O | 업로드할 인증서 타입
- `CA_FILE`: CA 인증서
- `CERT_FILE`: 인증서
- `KEY_FILE`: 비밀 키 | -| tenantId | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 인증서 파일이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 인증서 파일의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "certificateTypes": ["CA_FILE", "CERT_FILE", "KEY_FILE"], - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "certificates/" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -## 백업 - -### 백업 상태 - -| 상태 | 설명 | -|--------------|--------------| -| `BACKING_UP` | 백업 중인 경우 | -| `COMPLETED` | 백업이 완료된 경우 | -| `DELETING` | 백업이 삭제 중인 경우 | -| `DELETED` | 백업이 삭제된 경우 | -| `ERROR` | 오류가 발생한 경우 | - -### 백업 상세 보기 +### DB 인스턴스 복원 정보 조회 ```http -GET /v4.0/backups/{backupId} +GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------|----------| -| RDSforMariaDB:Backup.Get | 백업 상세 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------|------|----------|-----------------| -| backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | UUID | 백업의 식별자 | -| backup.regionCode | Body | Enum | 리전 코드 | -| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backup.backupStatus | Body | Enum | 백업의 현재 상태 | -| backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | -| backup.dbVersion | Body | Enum | DB 엔진 버전 | -| backup.backupType | Body | Enum | 백업 유형 | -| backup.backupMethodType | Body | Enum | 백업 방식 | -| backup.backupFileType | Body | Enum | 백업 파일 유형 | -| backup.backupSize | Body | Number | 백업의 크기(Byte) | -| backup.isReplicable | Body | Boolean | 복제 가능 여부 | -| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | -| backup.binLogPosition | Body | Number | 바이너리 로그 위치 | -| backup.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| backup.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| oldestRestorableYmdt | Body | DateTime | 가장 오래된 복원 가능한 시각 | +| latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | +| restorableBackups | Body | Array | 복원 가능한 백업 목록 | +| restorableBackups.backup | Body | Object | 백업 정보 객체 | +| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupName | Body | String | 백업 이름 | +| restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | +| restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| restorableBackups.backup.backupSize | Body | Number | 백업 크기 | +| restorableBackups.backup.useBackupLock | Body | Boolean | 테이블 잠금 사용 여부 | +| restorableBackups.backup.failoverCount | Body | Number | 장애 조치 횟수 | +| restorableBackups.backup.binLogFileName | Body | String | 바이너리 로그 파일 이름 | +| restorableBackups.backup.binLogPosition | Body | Object | 바이너리 로그 파일 위치 | +| restorableBackups.backup.createdYmdt | Body | DateTime | 백업 생성 일시 | +| restorableBackups.backup.updatedYmdt | Body | DateTime | 백업 갱신 일시 | +| restorableBackups.restorableBinLogs | Body | Array | 해당 백업을 이용하여 복원 가능한 바이너리 로그 이름 목록 |
예시

@@ -2987,24 +2777,13 @@ GET /v4.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "backup": { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "regionCode": "KR1", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbInstanceName": "db-instance", - "dbVersion": "MARIADB_V10330", - "backupType": "AUTO", - "backupMethodType": "FULL", - "backupFileType": "XTRA_BACKUP", - "backupSize": 4996786, - "isReplicable": true, - "binLogFileName": "mysql-bin.000001", - "binLogPosition": 154, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" - } + "oldestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", + "restorableBackups": [ + { + "restorableBinLogs": [] + } + ] } ``` @@ -3013,45 +2792,26 @@ GET /v4.0/backups/{backupId} --- -### 백업 목록 조회 +### 복원될 마지막 쿼리 조회 ```http -GET /v4.0/backups +GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMariaDB:Backup.List | 백업 목록 조회 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | -| backupType | Query | Enum | X | 백업 유형
- `AUTO`: 자동
- `MANUAL`: 수동
- 기본값: 전체 | -| dbInstanceId | Query | UUID | X | 원본 DB 인스턴스의 식별자 | -| dbVersion | Query | Enum | X | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|----------------------|------|----------|-----------------------------------| -| totalCounts | Body | Number | 전체 백업 목록 수 | -| backups | Body | Array | 백업 목록 | -| backups.backupId | Body | UUID | 백업의 식별자 | -| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | -| backups.backupStatus | Body | Enum | 백업의 현재 상태 | -| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | -| backups.dbVersion | Body | Enum | DB 엔진 유형 | -| backups.backupType | Body | Enum | 백업 유형 | -| backups.backupSize | Body | Number | 백업의 크기(Byte) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| executedYmdt | Body | DateTime | 쿼리 수행 일시 | +| lastQuery | Body | String | 마지막 수행 쿼리 |

예시

@@ -3063,20 +2823,8 @@ GET /v4.0/backups "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 1, - "backups": [ - { - "backupId": "0017f136-3e01-4530-94aa-20661afe6632", - "backupName": "backup", - "backupStatus": "COMPLETED", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd", - "dbVersion": "MARIADB_V10330", - "backupType": "AUTO", - "backupSize": 4996786, - "createdYmdt": "2023-02-21T00:35:00+09:00", - "updatedYmdt": "2023-02-22T00:35:32+09:00" - } - ] + "executedYmdt": "2023-12-31T15:00:00+09:00", + "lastQuery": "lastQuery-example" } ``` @@ -3085,312 +2833,344 @@ GET /v4.0/backups --- -### 백업 생성하기 +### DB 인스턴스 복원 ```http -POST /v4.0/backups +POST /v4.0/db-instances/{dbInstanceId}/restore ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMariaDB:Backup.Create | 백업 생성하기 | - #### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|------|--------|----|--------------------------------------------------------------------------------------| -| backupName | Body | String | O | 백업을 식별할 수 있는 이름 | -| backupMethodType | Body | Enum | O | 백업 방식 타입 종류
- `FULL`: 전체 백업
- `INCREMENTAL`: 증분 백업
- `SNAPSHOT`: 스냅숏 백업 | - -#### 전체 백업(backupMethodType이 `FULL`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미입력 시 원본 인스턴스의 사양이 적용됩니다. | +| dbPort | Body | Number | X | DB 포트 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 최솟값: `1`
- 최댓값: `600` | +| storage | Body | Object | X | 스토리지 정보 객체. 미입력 시 원본 인스턴스의 스토리지 설정이 적용됩니다. | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미입력 시 원본 인스턴스의 스토리지 타입이 적용됩니다. | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미입력 시 원본 인스턴스의 스토리지 크기가 적용됩니다.
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| network | Body | Object | X | 네트워크 정보 객체. 미입력 시 원본 인스턴스의 네트워크 설정이 적용됩니다. | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미입력 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미입력 시 랜덤 선택 | +| backup | Body | Object | X | 백업 정보 객체. 미입력 시 원본 인스턴스의 백업 설정이 적용됩니다. | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미입력 시 원본 인스턴스의 백업 보관 기간이 적용됩니다.
- 최솟값: `0`
- 최댓값: `730` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 최솟값: `0`
- 최댓값: `21600` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 최솟값: `0`
- 최댓값: `10` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미입력 시 원본 인스턴스의 백업 스케쥴이 적용됩니다. | +| backup.backupSchedules.backupWndBgnTime | Body | String | X | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | X | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | +| restore | Body | Object | O | 복원 정보 객체 | +| restore.restoreType | Body | Enum | O | 복원 타입
- TIMESTAMP: `복원 가능한 시간 이내의 시간을 이용한 시점 복원`
- BINLOG: `복원 가능한 바이너리 로그 위치를 이용한 시점 복원`
- BACKUP: `기존에 생성한 백업을 이용한 스냅숏 복원` | +| restore.binLog.binLogFileName | Body | String | X | 복원에 사용할 바이너리 로그 이름 | +| restore.binLog.binLogPosition | Body | Object | X | 복원에 사용할 바이너리 로그 위치 | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미입력 시 원본 인스턴스의 파라미터 그룹이 적용됩니다. | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록. 미입력 시 원본 인스턴스의 보안 그룹이 적용됩니다. | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|--------------| -| dbInstanceId | Body | UUID | O | DB 인스턴스의 식별자 | +#### Timestamp를 이용한 시점 복원 시 요청(restoreType이 `TIMESTAMP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.restoreYmdt | Body | DateTime | X | DB 인스턴스 복원 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -

예시 -

+복원 정보 조회로 조회한 가장 최신의 복원 가능한 시간 이전에 대해서만 복원이 가능합니다. -```json -{ - "backupName": "example-backup-name", - "backupMethodType": "FULL", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd" -} -``` +#### 바이너리 로그를 이용한 시점 복원 시 요청(restoreType이 `BINLOG`인 경우) -

-
+| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 | +| restore.binLog | Body | Object | X | 복원에 사용할 바이너리 로그 정보 객체 | -#### 증분 백업(backupMethodType이 `INCREMENTAL`인 경우) +바이너리 로그를 이용한 시점 복원 시 기준 백업의 바이너리 로그 파일 및 위치를 기준으로 그 이후에 기록된 로그에 대해 복원이 가능합니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|------------| -| baseBackupId | Body | UUID | O | 기준 백업의 식별자 | +#### 백업을 이용한 복원 시 요청(restoreType이 `BACKUP`인 경우) +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| restore.backupId | Body | UUID | X | 복원에 사용할 백업의 식별자 |
예시

```json { - "backupName": "example-backup-name", - "backupMethodType": "INCREMENTAL", - "baseBackupId": "3ae7914f-9b42-4729-b125-87417b72cf36" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "useHighAvailability": false, + "pingInterval": 3, + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" + }, + "backup": { + "backupPeriod": 0, + "ftwrlWaitTimeout": 1800, + "backupRetryCount": 0, + "replicationRegion": "KR1", + "useBackupLock": true, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + }, + "restore": { + "restoreType": "TIMESTAMP", + "binLog": { + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + } + } + }, + "useDefaultNotification": false, + "useSlowQueryAnalysis": true, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useDeletionProtection": false } ```

+#### 응답 -#### 스냅숏 백업(backupMethodType이 `SNAPSHOT`인 경우) - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|------|------|----|--------------| -| dbInstanceId | Body | UUID | O | DB 인스턴스의 식별자 | - +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "backupName": "example-backup-name", - "backupMethodType": "SNAPSHOT", - "dbInstanceId": "142e6ccc-3bfb-4e1e-84f7-38861284fafd" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 백업 내보내기 +### DB 인스턴스 시작하기 ```http -POST /v4.0/backups/{backupId}/export +POST /v4.0/db-instances/{dbInstanceId}/start ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMariaDB:Backup.Export | 백업 내보내기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------|------|--------|----|-----------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID | -| username | Body | String | O | NHN Cloud 계정 또는 IAM 계정 ID | -| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | -| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | -| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json { - "tenantId": "399631c404744dbbb18ce4fa2dc71a5a", - "username": "gildong.hong@nhn.com", - "password": "password", - "targetContainer": "container", - "objectPath": "backups/backup_file" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - -> [주의] -> 수동 백업의 경우 백업이 수행된 DB 인스턴스가 존재하지 않으면, 백업을 오브젝트 스토리지로 내보낼 수 없습니다. - --- -### 백업 복원하기 +### DB 인스턴스 정지하기 ```http -POST /v4.0/backups/{backupId}/restore +POST /v4.0/db-instances/{dbInstanceId}/stop ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|--------------------------------------------|---------| -| RDSforMariaDB:Backup.Restore | 백업 복원하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | + +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------------------------------------------|------|---------|----|---------------------------------------------------------------------| -| backupId | URL | UUID | O | 백업의 식별자 | -| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름 | -| dbInstanceCandidateName | Body | String | X | DB 인스턴스를 식별할 수 있는 예비 마스터 이름(고가용성 사용 시 필수 값) | -| description | Body | String | X | DB 인스턴스에 대한 추가 정보 | -| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbPort | Body | Integer | X | DB 포트
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `3306`
- 최댓값: `43306` | -| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 ||network|Body|Object|O|네트워크 정보 객체| -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | -| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | -| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | -| pingType | Body | Enum | X | 고가용성 사용 시 Ping 타입
- 기본값: `INSERT`
- `INSERT`
- `SELECT` | -| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | -| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | -| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | -| network | Body | Object | X | 네트워크 정보 객체 | -| network.subnetId | Body | UUID | X | 서브넷의 식별자
- 기본값: 원본 DB 인스턴스 값 | -| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | -| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역
- 예시: `kr-pub-a`
- 기본값: 랜덤 선택 | -| storage | Body | Object | X | 데이터 스토리지 정보 객체 | -| storage.storageType | Body | Enum | X | 데이터 스토리지 타입
- 예시: `General SSD`
- 기본값: 원본 DB 인스턴스 값 | -| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `20`
- 최댓값: `2048` | -| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | -| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: 원본 DB 인스턴스 값 | -| storage.storageAutoscale.threshold | Body | Number | X | 자동 확장 조건(%)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `50`
- 최댓값: `95` | -| storage.storageAutoscale.maxStorageSize | Body | Number | X | 자동 확장 최대 크기(GB)
- 기본값: 원본 DB 인스턴스 값
- 최댓값: `4096` | -| storage.storageAutoscale.cooldownTime | Body | Number | X | 자동 확장 쿨다운 시간(분)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `10`
- 최댓값: `1440` | -| backup | Body | Object | X | 백업 정보 객체 | -| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일)
- 기본값: 원본 DB 인스턴스 값
- 최솟값: `0`
- 최댓값: `730` | -| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초)
- 기본값: `1800`
- 최솟값: `0`
- 최댓값: `21600` | -| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수
- 기본값: `0`
- 최솟값: `0`
- 최댓값: `10` | -| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부
- 기본값: `true` | -| backup.backupSchedules | Body | Array | X | 예정된 자동 백업 목록
- 기본값: 원본 DB 인스턴스 값 | -| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각
- 예시: `00:00:00` | -| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
백업 시작 시각부터 Duration 안에 자동 백업이 실행됩니다.
- `HALF_AN_HOUR`: 30분
- `ONE_HOUR`: 1시간
- `ONE_HOUR_AND_HALF`: 1시간 30분
- `TWO_HOURS`: 2시간
- `TWO_HOURS_AND_HALF`: 2시간 30분
- `THREE_HOURS`: 3시간 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

```json - { - "dbInstanceName": "db-instance-restore", - "dbFlavorId": "50be6d9c-02d6-4594-a2d4-12010eb65ec0", - "dbPort": 10000, - "parameterGroupId": "132d383c-38e3-468a-a826-5e9a8fff15d0", - "network": { - "subnetId": "e721a9dd-dad0-4cf0-a53b-dd654ebfc683", - "availabilityZone": "kr-pub-a" - }, - "storage": { - "storageType": "General SSD", - "storageSize": 20 + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true }, - "backup": { - "backupPeriod": 1, - "backupSchedules": [ - { - "backupWndBgnTime": "00:00:00", - "backupWndDuration": "HALF_AN_HOUR" - } - ] - } + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | - --- -### 백업 삭제하기 +### 스토리지 정보 보기 ```http -DELETE /v4.0/backups/{backupId} +GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-------------------------------------------|---------| -| RDSforMariaDB:Backup.Delete | 백업 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|----------|-----|------|----|---------| -| backupId | URL | UUID | O | 백업의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| storageType | Body | String | 데이터 스토리지 타입 | +| storageSize | Body | Number | 데이터 스토리지 크기(GB) | +| storageStatus | Body | Enum | 데이터 스토리지의 현재 상태
- DELETED: `삭제됨`
- PENDING_DELETION: `삭제 유예됨`
- DELETION_RESERVED: `삭제 예약됨 (스냅샷 정리 대기)`
- DETACHED: `해제됨`
- ATTACHED: `할당됨` | +| storageAutoscale | Body | Object | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | 스토리지 자동 확장 여부 | +| storageAutoscale.threshold | Body | Number | 자동 확장 조건(%) | +| storageAutoscale.maxStorageSize | Body | Number | 자동 확장 최대 크기(GB) | +| storageAutoscale.cooldownTime | Body | Number | 자동 확장 쿨다운 시간(분) | ---- +
예시 +

-## DB 보안 그룹 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "storageType": "storageType-example", + "storageSize": 1, + "storageStatus": "DELETED", + "storageAutoscale": { + "useStorageAutoscale": false, + "threshold": 1, + "maxStorageSize": 1, + "cooldownTime": 1 + } +} +``` -### DB 보안 그룹 진행 상태 +

+
-| 상태 | 설명 | -|-----------------|--------------| -| `NONE` | 진행 중인 작업이 없음 | -| `CREATING_RULE` | 규칙 정책 생성 중 | -| `UPDATING_RULE` | 규칙 정책 수정 중 | -| `DELETING_RULE` | 규칙 정책 삭제 중 | +--- -### DB 보안 그룹 목록 보기 +### 스토리지 정보 수정하기 ```http -GET /v4.0/db-security-groups +PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` -#### 필요 권한 +#### 공통 요청 -| 권한명 | 설명 | -|--------------------------------------------------|----------------| -| RDSforMariaDB:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceId | URL | UUID | O | DB 인스턴스의 식별자 | +| storageSize | Body | Number | O | 데이터 스토리지 크기(GB)
- 최댓값: `2048` | +| storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체 | +| storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부 | -#### 요청 +#### 스토리지 자동 확장 사용 시 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` | + +
예시 +

+ +```json +{ + "storageSize": 1, + "storageAutoscale": { + "useStorageAutoscale": false + } +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-----------------------------------| -| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3402,16 +3182,7 @@ GET /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroups": [ - { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2022-02-19T19:18:13+09:00" - } - ] + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3420,48 +3191,44 @@ GET /v4.0/db-security-groups --- -### DB 보안 그룹 상세 보기 +## 백업 -```http -GET /v4.0/db-security-groups/{dbSecurityGroupId} -``` +### 백업 상태 -#### 필요 권한 +| 상태 | 설명 | +|--------------|--------------| +| `BACKING_UP` | 백업 중인 경우 | +| `COMPLETED` | 백업이 완료된 경우 | +| `DELETING` | 백업이 삭제 중인 경우 | +| `DELETED` | 백업이 삭제된 경우 | +| `ERROR` | 오류가 발생한 경우 | -| 권한명 | 설명 | -|-------------------------------------------------|----------------| -| RDSforMariaDB:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | +### 백업 목록 조회 + +```http +GET /v4.0/backups +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|----------|--------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | DB 보안 그룹에 대한 추가 정보 | -| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태 | -| rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | -| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.port | Body | Object | 포트 객체 | -| rules.port.portType | Body | Enum | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다.
- `PORT`: 지정된 포트값으로 설정됩니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | 최소 포트 범위 | -| rules.port.maxPort | Body | Number | 최대 포트 범위 | -| rules.cidr | Body | String | 허용할 트래픽의 원격 소스 | -| rules.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| rules.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 백업 목록 수 | +| backups | Body | Array | 백업 목록 | +| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbVersion | Body | Enum | DB 엔진 유형 | +| backups.utilVersion | Body | String | 유틸리티 버전 | +| backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | +| backups.backupSize | Body | Number | 백업의 크기(Byte) | +| backups.createdYmdt | Body | DateTime | 생성 일시 | +| backups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -3473,30 +3240,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroup": { - "dbSecurityGroupId": "fe4f2aee-afbb-4c19-a5e9-eb2eab394708", - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "progressStatus": "NONE", - "rules": [ - { - "ruleId": "17c88ef6-95f1-4678-84f9-fee1b22e250d", - "description": "description", - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0", - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } - ], - "createdYmdt": "2023-02-19T19:18:13+09:00", - "updatedYmdt": "2023-02-19T19:18:13+09:00" - } + "totalCounts": 1, + "backups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -3505,56 +3254,30 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 생성하기 +### 백업 생성하기 ```http -POST /v4.0/db-security-groups +POST /v4.0/backups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMariaDB:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | -| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | -| rules.description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| rules.direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| rules.etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| rules.cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | -| rules.port | Body | Object | O | 포트 객체 | -| rules.port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 필요하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupName | Body | String | O | 백업을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| baseBackupId | Body | UUID | X | 원본 백업의 식별자 | +| dbInstanceId | Body | UUID | X | DB 인스턴스의 식별자 | +| backupMethodType | Body | Enum | O | 백업 방식 타입
- FULL: `전체 백업`
- INCREMENTAL: `증분 백업`
- SNAPSHOT: `스냅숏 백업` |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description", - "rules": [ - { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT_RANGE", - "minPort": 10000, - "maxPort": 10005 - }, - "cidr": "0.0.0.0/0" - } - ] + "backupName": "backupName", + "baseBackupId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "backupMethodType": "FULL" } ``` @@ -3563,48 +3286,48 @@ POST /v4.0/db-security-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|------|---------------| -| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | - ---- - -### DB 보안 그룹 수정하기 - -```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId} -``` - -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMariaDB:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | - -#### 요청 - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|------|--------|----|-----------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | DB 보안 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |

예시

```json { - "dbSecurityGroupName": "dbSecurityGroup", - "description": "description" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

+--- + +### 백업 삭제하기 + +```http +DELETE /v4.0/backups/{backupId} +``` + +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | + #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | UUID | 요청한 작업의 식별자 |
예시

@@ -3615,39 +3338,52 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ```

- --- -### DB 보안 그룹 삭제하기 +### 백업 단건 조회 ```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId} +GET /v4.0/backups/{backupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------|---------------| -| RDSforMariaDB:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-----|------|----|---------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| backup | Body | Object | 백업 상세 정보 | +| backup.backupId | Body | String | 백업의 식별자 | +| backup.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | +| backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | +| backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | +| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | +| backup.dbVersion | Body | Enum | DB 엔진 버전 | +| backup.utilVersion | Body | String | 유틸리티 버전 | +| backup.backupType | Body | Enum | 백업 유형 (AUTO, MANUAL)
- AUTO
- MANUAL | +| backup.backupMethodType | Body | Enum | 백업 방식 (FULL, SNAPSHOT, INCREMENTAL)
- FULL
- INCREMENTAL
- SNAPSHOT | +| backup.backupFileType | Body | Enum | 백업 파일 유형
- XBSTREAM
- TAR_ZSTD
- TAR_LZ4
- TAR_GZIP
- SNAPSHOT | +| backup.backupSize | Body | Number | 백업의 크기(Byte) | +| backup.isReplicable | Body | Boolean | 복제 가능 여부 | +| backup.binLogFileName | Body | String | 바이너리 로그 파일명 | +| backup.binLogPosition | Body | Object | 바이너리 로그 위치 | +| backup.createdYmdt | Body | DateTime | 생성 일시 | +| backup.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3658,6 +3394,26 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true + }, + "backup": { + "backupId": "backupId-example", + "regionCode": "KR1", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupMethodType": "FULL", + "backupFileType": "XBSTREAM", + "backupSize": 1, + "isReplicable": false, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } } ``` @@ -3667,48 +3423,33 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} --- -### DB 보안 그룹 규칙 생성하기 +### 백업 내보내기 ```http -POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules +POST /v4.0/backups/{backupId}/export ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMariaDB:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 필요하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| tenantId | Body | String | O | 백업이 저장될 오브젝트 스토리지의 테넌트 ID
- 최소 길이: `32`
- 최대 길이: `32` | +| username | Body | String | O | NHN Cloud 계정 혹은 IAM 회원 ID | +| password | Body | String | O | 백업이 저장될 오브젝트 스토리지의 API 비밀번호 | +| targetContainer | Body | String | O | 백업이 저장될 오브젝트 스토리지의 컨테이너 | +| objectPath | Body | String | O | 컨테이너에 저장될 백업의 경로 |

예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "PORT", - "minPort": 10000, - "maxPort": 10000 - }, - "cidr": "0.0.0.0/0" + "tenantId": "tenantId-example", + "username": "username-example", + "password": "password-example", + "targetContainer": "targetContainer-example", + "objectPath": "objectPath-example" } ``` @@ -3717,53 +3458,126 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 보안 그룹 규칙 수정하기 +### 백업 복원하기 ```http -PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} +POST /v4.0/backups/{backupId}/restore ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMariaDB:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | - -#### 요청 +#### 공통 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|------|--------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleId | URL | UUID | O | DB 보안 그룹 규칙의 식별자 | -| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보 | -| direction | Body | Enum | O | 통신 방향
- `INGRESS`: 수신
- `EGRESS`: 송신 | -| etherType | Body | Enum | O | Ether 타입
- `IPV4`: IPv4
- `IPV6`: IPv6 | -| port | Body | Object | O | 포트 객체 | -| port.portType | Body | Enum | O | 포트 타입
- `DB_PORT`: 각 DB 인스턴스 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 필요하지 않습니다.
- `PORT`: 지정된 포트값으로 설정됩니다. `minPort`값과 `maxPort`값이 같아야 합니다.
- `PORT_RANGE`: 지정된 포트 범위로 설정됩니다. | -| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: 1 | -| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: 65535 | -| cidr | Body | String | O | 허용할 트래픽의 원격 소스
- 예시: `1.1.1.1/32` | - -> [주의] -> DB 포트는 송신 방향으로 설정할 수 없습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| backupId | URL | UUID | O | | +| dbInstanceName | Body | String | O | DB 인스턴스를 식별할 수 있는 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 인스턴스에 대한 추가 정보
- 최대 길이: `100` | +| dbFlavorId | Body | UUID | X | DB 인스턴스 사양의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbPort | Body | Number | X | DB 포트. 미지정 시 원본 인스턴스 값 사용
- 최솟값: 3306, 최댓값: 43306 | +| parameterGroupId | Body | UUID | X | 파라미터 그룹의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| dbSecurityGroupIds | Body | Array | X | DB 보안 그룹의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| useHighAvailability | Body | Boolean | X | 고가용성 사용 여부
- 기본값: `false` | +| pingInterval | Body | Number | X | 고가용성 사용 시 Ping 간격(초)
- 기본값: `3`
- 최솟값: `1`
- 최댓값: `600` | +| useDefaultNotification | Body | Boolean | X | 기본 알림 사용 여부
- 기본값: `false` | +| useDeletionProtection | Body | Boolean | X | 삭제 보호 여부
- 기본값: `false` | +| useSlowQueryAnalysis | Body | Boolean | X | Slow query 분석 여부
- 기본값: `true` | +| network | Body | Object | X | 네트워크 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| network.subnetId | Body | UUID | X | 서브넷의 식별자. 미지정 시 원본 인스턴스 값 사용 | +| network.usePublicAccess | Body | Boolean | X | 외부 접속 가능 여부
- 기본값: `false` | +| network.availabilityZone | Body | Enum | X | DB 인스턴스를 생성할 가용성 영역. 미지정 시 랜덤 선택 | +| storage | Body | Object | X | 스토리지 정보 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageType | Body | Enum | X | 스토리지 타입. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageSize | Body | Number | X | 데이터 스토리지 크기(GB). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `20` | +| storage.storageAutoscale | Body | Object | X | 데이터 스토리지 자동 확장 객체. 미지정 시 원본 인스턴스 값 사용 | +| storage.storageAutoscale.useStorageAutoscale | Body | Boolean | X | 스토리지 자동 확장 여부
- 기본값: `false` | +| backup | Body | Object | X | 백업 정보 객체. 미지정 시 원본 인스턴스 백업 설정 사용 | +| backup.backupPeriod | Body | Number | X | 백업 보관 기간(일). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `730` | +| backup.backupRetryCount | Body | Number | X | 백업 재시도 횟수. 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `10` | +| backup.ftwrlWaitTimeout | Body | Number | X | 쿼리 지연 대기 시간(초). 미지정 시 원본 인스턴스 값 사용
- 최솟값: `0`
- 최댓값: `21600` | +| backup.replicationRegion | Body | Enum | X | 백업 복제 리전
- KR1: `한국(판교)` | +| backup.useBackupLock | Body | Boolean | X | 테이블 잠금 사용 여부. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules | Body | Array | X | 백업 스케쥴 목록. 미지정 시 원본 인스턴스 값 사용 | +| backup.backupSchedules.backupWndBgnTime | Body | String | O | 백업 시작 시각 | +| backup.backupSchedules.backupWndDuration | Body | Enum | O | 백업 Duration
- HALF_AN_HOUR: `30분`
- ONE_HOUR: `1시간`
- ONE_HOUR_AND_HALF: `1시간 30분`
- TWO_HOURS: `2시간`
- TWO_HOURS_AND_HALF: `2시간 30분`
- THREE_HOURS: `3시간` | + +#### 고가용성 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbInstanceCandidateName | Body | String | O | DB 인스턴스를 식별할 수 있는 예비 마스터 이름
- 최소 길이: `1`
- 최대 길이: `100` | + +#### 스토리지 자동 확장 사용 시 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| storage.storageAutoscale.threshold | Body | Number | O | 자동 확장 조건(%)
- 최솟값: `50`
- 최댓값: `95` | +| storage.storageAutoscale.maxStorageSize | Body | Number | O | 자동 확장 최대 크기(GB)
- 최댓값: `4096` | +| storage.storageAutoscale.cooldownTime | Body | Number | O | 자동 확장 쿨다운 시간(분)
- 최솟값: `10`
- 최댓값: `1440` |
예시

```json { - "direction": "INGRESS", - "etherType": "IPV4", - "port": { - "portType": "DB_PORT" + "dbInstanceName": "dbInstanceName", + "description": "description-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "dbPort": 1, + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", + "dbSecurityGroupIds": [], + "userGroupIds": [], + "useHighAvailability": false, + "pingInterval": 3, + "useDefaultNotification": false, + "useDeletionProtection": false, + "useSlowQueryAnalysis": true, + "network": { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "usePublicAccess": false, + "availabilityZone": "ENUM_VALUE" }, - "cidr": "0.0.0.0/0" + "storage": { + "storageType": "ENUM_VALUE", + "storageSize": 20, + "storageAutoscale": { + "useStorageAutoscale": false + } + }, + "backup": { + "backupPeriod": 0, + "backupRetryCount": 0, + "ftwrlWaitTimeout": 0, + "replicationRegion": "KR1", + "useBackupLock": false, + "backupSchedules": [ + { + "backupWndDuration": "HALF_AN_HOUR" + } + ] + } } ``` @@ -3772,75 +3586,132 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| | jobId | Body | UUID | 요청한 작업의 식별자 | +

예시 +

+ +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "550e8400-e29b-41d4-a716-446655440000" +} +``` + +

+
+ --- -### DB 보안 그룹 규칙 삭제하기 +## DB 보안 그룹 -```http -DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules -``` +### DB 보안 그룹 진행 상태 -#### 필요 권한 +| 상태 | 설명 | +|-----------------|--------------| +| `NONE` | 진행 중인 작업이 없음 | +| `CREATING_RULE` | 규칙 정책 생성 중 | +| `UPDATING_RULE` | 규칙 정책 수정 중 | +| `DELETING_RULE` | 규칙 정책 삭제 중 | -| 권한명 | 설명 | -|--------------------------------------------------------|------------------| -| RDSforMariaDB:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 삭제하기 | +### DB 보안 그룹 목록 보기 + +```http +GET /v4.0/db-security-groups +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|-------|----|---------------------| -| dbSecurityGroupId | URL | UUID | O | DB 보안 그룹의 식별자 | -| ruleIds | Query | Array | O | DB 보안 그룹 규칙의 식별자 목록 | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------|------|------|-------------| -| jobId | Body | UUID | 요청한 작업의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | +| dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | +| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| dbSecurityGroups.createdYmdt | Body | DateTime | 생성 일시 | +| dbSecurityGroups.updatedYmdt | Body | DateTime | 수정 일시 | ---- +
예시 +

-## 파라미터 그룹 +```json +{ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "totalCounts": 1, + "dbSecurityGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] +} +``` -### 파라미터 그룹 목록 보기 +

+
+ +--- + +### DB 보안 그룹 생성하기 ```http -GET /v4.0/parameter-groups +POST /v4.0/db-security-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------------------|---------------| -| RDSforMariaDB:ParameterGroup.List | 파라미터 그룹 목록 보기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupName | Body | String | O | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` | +| rules | Body | Array | O | DB 보안 그룹 규칙 목록 | +| rules.direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | O | 포트 객체 | +| rules.port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| rules.port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| rules.cidr | Body | String | O | CIDR | +| rules.description | Body | String | X | 보안 그룹 규칙에 대한 추가 정보 | -#### 요청 +
예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example", + "rules": [ + { + "description": "description-example" + } + ] +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------|-------|------|----|----------| -| dbVersion | Query | Enum | X | DB 엔진 유형 | +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------------------|------|----------|-------------------------------------------------------------------| -| parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameterGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 |
예시

@@ -3852,67 +3723,71 @@ GET /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroups": [ - { - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MARIADB_V10330", - "parameterGroupStatus": "STABLE", - "createdYmdt": "2023-02-31T15:28:17+09:00", - "updatedYmdt": "2023-02-31T15:28:17+09:00" - } - ] + "dbSecurityGroupId": "dbSecurityGroupId-example" } ```

- --- -### 파라미터 그룹 상세 보기 +### DB 보안 그룹 삭제하기 ```http -GET /v4.0/parameter-groups/{parameterGroupId} +DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### DB 보안 그룹 상세 보기 -| 권한명 | 설명 | -|------------------------------------------------|---------------| -| RDSforMariaDB:ParameterGroup.Get | 파라미터 그룹 상세 보기 | +```http +GET /v4.0/db-security-groups/{dbSecurityGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------------------|------|----------|--------------------------------------------------------------------------------------------------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | DB 엔진 유형 | -| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- `STABLE`: 적용 완료
- `NEED_TO_APPLY`: 적용 필요 | -| parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | UUID | 파라미터 식별자 | -| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- `CLIENT`: client
- `MYSQL`: mysql
- `MYSQLD`: mysqld | -| parameters.parameterName | Body | String | 파라미터 이름 | -| parameters.fileParameterName | Body | String | 파라미터 파일명 | -| parameters.value | Body | String | 현재 설정된 값 | -| parameters.defaultValue | Body | String | 기본값 | -| parameters.allowedValue | Body | String | 허용된 값 | -| parameters.updateType | Body | Enum | 수정 타입
- `VARIABLE`: 언제든 수정 가능
- `CONSTANT`: 수정 불가능
- `INIT_VARIABLE`: DB 인스턴스 생성 시에만 수정 가능 | -| parameters.applyType | Body | Enum | 적용 타입
- `SESSION`: 세션 적용
- `FILE`: 설정 파일 적용(재시작 필요)
- `BOTH`: 전체(재시작 필요) | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | +| description | Body | String | DB 보안 그룹에 대한 추가 정보 | +| progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | +| rules | Body | Array | DB 보안 그룹 규칙 목록 | +| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | +| rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| rules.port | Body | Object | 포트 객체 | +| rules.port.portType | Body | Enum | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| rules.port.minPort | Body | Number | 최소 포트 범위 | +| rules.port.maxPort | Body | Number | 최대 포트 범위 | +| rules.cidr | Body | String | CIDR | +| rules.createdYmdt | Body | DateTime | 생성 일시 | +| rules.updatedYmdt | Body | DateTime | 수정 일시 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -3924,62 +3799,46 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "404e8a89-ca4d-4fca-96c2-1518754d50b7", - "parameterGroupName": "parameter-group", - "description": null, - "dbVersion": "MARIADB_V10330", - "parameterGroupStatus": "STABLE", - "parameters": [ + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "rules": [ { - "parameterId": "fa040b5e-f29f-46de-8f0d-bba4cb82887a", - "parameterFileGroup": "client", - "parameterName": "socket", - "fileParameterName": "socket", - "value": "/home/tcrds/db/mysql/tmp/mysql.sock", - "defaultValue": "/home/tcrds/db/mysql/tmp/mysql.sock", - "allowedValue": "", - "updateType": "CONSTANT", - "applyType": "BOTH" + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], - "createdYmdt": "2023-03-13T11:02:28+09:00", - "updatedYmdt": "2023-03-13T11:02:28+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ```

- --- -### 파라미터 그룹 생성하기 +### DB 보안 그룹 수정하기 ```http -POST /v4.0/parameter-groups +PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMariaDB:ParameterGroup.Create | 파라미터 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | -| dbVersion | Body | Enum | O | DB 엔진 유형 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| dbSecurityGroupName | Body | String | X | DB 보안 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | DB 보안 그룹에 대한 추가 정보
- 최대 길이: `100` |
예시

```json { - "parameterGroupName": "parameter-group", - "dbVersion": "MARIADB_V10330" + "dbSecurityGroupName": "dbSecurityGroupName", + "description": "description-example" } ``` @@ -3988,79 +3847,84 @@ POST /v4.0/parameter-groups #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 파라미터 그룹 복사하기 +### DB 보안 그룹 규칙 삭제하기 ```http -POST /v4.0/parameter-groups/{parameterGroupId}/copy +DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|-------------------------------------------------|--------------| -| RDSforMariaDB:ParameterGroup.Copy | 파라미터 그룹 복사하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleIds | Query | String | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +#### 응답 + +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

```json { - "parameterGroupName": "parameter-group-copy", - "description": "copy" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "jobId": "jobId-example" } ```

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|------------------|------|------|--------------| -| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | - --- -### 파라미터 그룹 수정하기 +### DB 보안 그룹 규칙 생성하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId} +POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMariaDB:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------|------|--------|----|----------------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름 | -| description | Body | String | X | 파라미터 그룹에 대한 추가 정보 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |
예시

```json { - "parameterGroupName": "parameter-group" + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -4069,7 +3933,9 @@ PUT /v4.0/parameter-groups/{parameterGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -4080,7 +3946,8 @@ PUT /v4.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ``` @@ -4089,38 +3956,41 @@ PUT /v4.0/parameter-groups/{parameterGroupId} --- -### 파라미터 수정하기 +### DB 보안 그룹 규칙 수정하기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/parameters +PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMariaDB:ParameterGroup.Modify | 파라미터 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------------------------|------|--------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | -| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | -| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | -| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| dbSecurityGroupId | URL | UUID | O | | +| ruleId | URL | UUID | O | | +| direction | Body | Enum | O | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | +| etherType | Body | Enum | O | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | +| port | Body | Object | O | 포트 객체 | +| port.portType | Body | Enum | O | 포트 타입
- ALL: `포트 범위 전체 (사용자 콘솔에서는 사용하지 않음)`
- PORT: `특정 포트`
- DB_PORT: `DB 수신 포트`
- PORT_RANGE: `포트 범위` | +| port.minPort | Body | Number | X | 최소 포트 범위
- 최솟값: `3306` | +| port.maxPort | Body | Number | X | 최대 포트 범위
- 최댓값: `65535` | +| cidr | Body | String | O | CIDR | +| description | Body | String | X | DB 보안 그룹 규칙에 대한 추가 정보
- 최대 길이: `200` |

예시

```json { - "modifiedParameters": [ - { - "parameterId": "3abac558-7274-44e1-9f4a-f100f53f67ba", - "value": "0" - } - ] + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", + "description": "description-example" } ``` @@ -4129,7 +3999,9 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| jobId | Body | String | 작업의 식별자 |

예시

@@ -4140,7 +4012,8 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "jobId": "jobId-example" } ``` @@ -4149,27 +4022,32 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters --- -### 파라미터 그룹 재설정하기 +## 파라미터 그룹 + +### 파라미터 그룹 목록 보기 ```http -PUT /v4.0/parameter-groups/{parameterGroupId}/reset +GET /v4.0/parameter-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|--------------------------------------------------|---------------| -| RDSforMariaDB:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 파라미터 그룹 수 | +| parameterGroups | Body | Array | 파라미터 그룹 목록 | +| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroups.parameterGroupType | Body | Enum | 파라미터 그룹 유형
- USER
- ADMIN
- DEFAULT
- CLUSTER_USER | +| parameterGroups.parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameterGroups.createdYmdt | Body | DateTime | 생성 일시 | +| parameterGroups.updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4180,7 +4058,13 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "totalCounts": 1, + "parameterGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -4189,29 +4073,39 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset --- -### 파라미터 그룹 삭제하기 +### 파라미터 그룹 생성하기 ```http -DELETE /v4.0/parameter-groups/{parameterGroupId} +POST /v4.0/parameter-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|---------------------------------------------------|--------------| -| RDSforMariaDB:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | +| dbVersion | Body | Enum | O | DB 엔진 유형 | -#### 요청 +

예시 +

-이 API는 요청 본문을 요구하지 않습니다. +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example", + "dbVersion": "ENUM_VALUE" +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------|-----|------|----|--------------| -| parameterGroupId | URL | UUID | O | 파라미터 그룹의 식별자 | +

+
#### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -4222,7 +4116,8 @@ DELETE /v4.0/parameter-groups/{parameterGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4231,33 +4126,61 @@ DELETE /v4.0/parameter-groups/{parameterGroupId} --- -## 사용자 그룹 - -### 사용자 그룹 목록 보기 +### 파라미터 그룹 삭제하기 ```http -GET /v4.0/user-groups +DELETE /v4.0/parameter-groups/{parameterGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 파라미터 그룹 상세 보기 -| 권한명 | 설명 | -|--------------------------------------------|--------------| -| RDSforMariaDB:UserGroup.List | 사용자 그룹 목록 보기 | +```http +GET /v4.0/parameter-groups/{parameterGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|-----------------------------------| -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| userGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | +| description | Body | String | 파라미터 그룹에 대한 추가 정보 | +| dbVersion | Body | Enum | DB 엔진 유형 | +| parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | +| parameters | Body | Array | 파라미터 목록 | +| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | +| parameters.parameterName | Body | String | 파라미터 이름 | +| parameters.fileParameterName | Body | String | 파라미터 파일 이름 | +| parameters.value | Body | String | 현재 설정된 값 | +| parameters.defaultValue | Body | String | 기본값 | +| parameters.allowedValue | Body | String | 허용된 값 | +| parameters.updateType | Body | Enum | 수정 타입
- VARIABLE
- CONSTANT
- INIT_VARIABLE | +| parameters.applyType | Body | Enum | 적용 타입
- BOTH
- SESSION
- FILE | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4269,14 +4192,18 @@ GET /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroups": [ + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "parameters": [ { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "applyType": "BOTH" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4285,37 +4212,71 @@ GET /v4.0/user-groups --- -### 사용자 그룹 상세 보기 +### 파라미터 그룹 수정하기 ```http -GET /v4.0/user-groups/{userGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId} +``` + +#### 요청 + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | X | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | + +

예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} ``` -#### 필요 권한 +

+
+ +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 파라미터 그룹 복사하기 -| 권한명 | 설명 | -|-------------------------------------------|--------------| -| RDSforMariaDB:UserGroup.Get | 사용자 그룹 상세 보기 | +```http +POST /v4.0/parameter-groups/{parameterGroupId}/copy +``` #### 요청 -이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| parameterGroupName | Body | String | O | 파라미터 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| description | Body | String | X | 파라미터 그룹에 대한 추가 정보
- 최대 길이: `100` | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +
예시 +

+ +```json +{ + "parameterGroupName": "parameterGroupName", + "description": "description-example" +} +``` + +

+
#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------------|------|----------|-----------------------------------------------------------------------------------------------------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
`ENTIRE`: 프로젝트 멤버 전체를 포함하는 사용자 그룹
`INDIVIDUAL_MEMBER`: 특정 프로젝트 멤버를 포함하는 사용자 그룹 | -| members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| parameterGroupId | Body | String | 파라미터 그룹의 식별자 |
예시

@@ -4327,16 +4288,7 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team", - "userGroupTypeCode": "INDIVIDUAL_MEMBER", - "members": [ - { - "memberId": "1321e759-2ef3-4b85-9921-b13e918b24b5" - } - ], - "createdYmdt": "2023-02-23T10:07:54+09:00", - "updatedYmdt": "2023-02-26T01:15:50+09:00" + "parameterGroupId": "parameterGroupId-example" } ``` @@ -4345,96 +4297,85 @@ GET /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 생성하기 +### 파라미터 수정하기 ```http -POST /v4.0/user-groups +PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMariaDB:UserGroup.Create | 사용자 그룹 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|-----------------------------------------------------------| -| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록
`selectAll`이 true인 경우 해당 필드 값은 무시됩니다 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 여부
true인 경우 해당 그룹은 전체 멤버를 대상으로 설정됩니다 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | +| modifiedParameters | Body | Array | O | 변경할 파라미터 목록 | +| modifiedParameters.parameterId | Body | UUID | O | 파라미터의 식별자 | +| modifiedParameters.value | Body | String | O | 변경할 파라미터 값 |

예시

```json { - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5" + "modifiedParameters": [ + { + "value": "value-example" + } ] } ``` -```json -{ - "userGroupName": "dev-team", - "selectAll": true -} -``` -

#### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-------------|------|------|-------------| -| userGroupId | Body | UUID | 사용자 그룹의 식별자 | +이 API는 응답 본문을 반환하지 않습니다. --- -### 사용자 그룹 수정하기 +### 파라미터 그룹 재설정하기 ```http -PUT /v4.0/user-groups/{userGroupId} +PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMariaDB:UserGroup.Modify | 사용자 그룹 수정하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| parameterGroupId | URL | UUID | O | | -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------|------|---------|----|----------------------------------------------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | -| userGroupName | Body | String | X | 사용자 그룹을 식별할 수 있는 이름 | -| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | -| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 여부
true인 경우 해당 그룹은 전체 멤버를 대상으로 설정됩니다 | +#### 응답 -
예시 -

+이 API는 응답 본문을 반환하지 않습니다. -```json -{ - "userGroupName": "dev-team", - "memberIds": [ - "1321e759-2ef3-4b85-9921-b13e918b24b5", - "f9064b09-2b15-442e-a4b0-3a5a2754555e" - ] -} +--- + +## 사용자 그룹 + +### 사용자 그룹 목록 보기 + +```http +GET /v4.0/user-groups ``` -

-
+#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroups.createdYmdt | Body | DateTime | 생성 일시 | +| userGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

@@ -4445,7 +4386,13 @@ PUT /v4.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "totalCounts": 1, + "userGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } + ] } ``` @@ -4454,27 +4401,39 @@ PUT /v4.0/user-groups/{userGroupId} --- -### 사용자 그룹 삭제하기 +### 사용자 그룹 생성하기 ```http -DELETE /v4.0/user-groups/{userGroupId} +POST /v4.0/user-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|----------------------------------------------|-------------| -| RDSforMariaDB:UserGroup.Delete | 사용자 그룹 삭제하기 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | O | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` | -#### 요청 +

예시 +

+ +```json +{ + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false +} +``` -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------|-----|------|----|-------------| -| userGroupId | URL | UUID | O | 사용자 그룹의 식별자 | +

+
#### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 |
예시

@@ -4485,7 +4444,8 @@ DELETE /v4.0/user-groups/{userGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "userGroupId": "userGroupId-example" } ``` @@ -4494,36 +4454,51 @@ DELETE /v4.0/user-groups/{userGroupId} --- -## 알림 그룹 - -### 알림 그룹 목록 보기 +### 사용자 그룹 삭제하기 ```http -GET /v4.0/notification-groups +DELETE /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 사용자 그룹 상세 보기 -| 권한명 | 설명 | -|----------------------------------------------------|-------------| -| RDSforMariaDB:NotificationGroup.List | 알림 그룹 목록 보기 | +```http +GET /v4.0/user-groups/{userGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | + #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------------------|------|----------|-----------------------------------| -| notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | -| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | -| notificationGroups.createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | +| members | Body | Array | 프로젝트 멤버 목록 | +| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4535,17 +4510,16 @@ GET /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroups": [ + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "userGroupTypeCode": "ENTIRE", + "members": [ { - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "memberId": "memberId-example" } - ] + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4554,117 +4528,80 @@ GET /v4.0/notification-groups --- -### 알림 그룹 상세 보기 +### 사용자 그룹 수정하기 ```http -GET /v4.0/notification-groups/{notificationGroupId} +PUT /v4.0/user-groups/{userGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------|-------------| -| RDSforMariaDB:NotificationGroup.Get | 알림 그룹 상세 보기 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|----------------------------|------|----------|-----------------------------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | 이메일 알림 여부 | -| notifySms | Body | Boolean | SMS 알림 여부 | -| isEnabled | Body | Boolean | 활성화 여부 | -| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | -| userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | -| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | -| createdYmdt | Body | DateTime | 생성 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| updatedYmdt | Body | DateTime | 수정 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| userGroupId | URL | UUID | O | | +| userGroupName | Body | String | O | 사용자 그룹을 식별할 수 있는 이름 | +| memberIds | Body | Array | X | 프로젝트 멤버의 식별자 목록 | +| selectAll | Body | Boolean | X | 프로젝트 멤버 전체 포함 여부
- 기본값: `false` |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "notificationGroupId": "b3901f17-9971-4d1e-8a81-8448cf533dc7", - "notificationGroupName": "dev-team-noti", - "notifyEmail": true, - "notifySms": false, - "isEnabled": true, - "dbInstances": [ - { - "dbInstanceId": "ed5cb985-526f-4c54-9ae0-40288593de65", - "dbInstanceName": "database" - } - ], - "userGroups": [ - { - "userGroupId": "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0", - "userGroupName": "dev-team" - } - ], - "createdYmdt": "2023-02-20T13:34:13+09:00", - "updatedYmdt": "2023-02-20T13:34:13+09:00" + "userGroupName": "userGroupName-example", + "memberIds": [], + "selectAll": false } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- -### 알림 그룹 생성하기 +## 알림 그룹 + +### 알림 그룹 목록 보기 ```http -POST /v4.0/notification-groups +GET /v4.0/notification-groups ``` -#### 필요 권한 +#### 요청 -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMariaDB:NotificationGroup.Create | 알림 그룹 생성하기 | +이 API는 요청 본문을 요구하지 않습니다. -#### 요청 +#### 응답 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------------| -| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | -| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | -| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | -| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroups | Body | Array | 알림 그룹 목록 | +| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | +| notificationGroups.isEnabled | Body | Boolean | 활성화 여부 | +| notificationGroups.createdYmdt | Body | DateTime | 생성 일시 | +| notificationGroups.updatedYmdt | Body | DateTime | 수정 일시 |
예시

```json { - "notificationGroupName": "dev-team-noti", - "notifyEmail": false, - "isEnable": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65" - ], - "userGroupIds": [ - "1aac0437-f32d-4923-ad3c-ac61c1cfdfe0" + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "notificationGroups": [ + { + "updatedYmdt": "2023-12-31T15:00:00+09:00" + } ] } ``` @@ -4672,48 +4609,36 @@ POST /v4.0/notification-groups

-#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|------|------------| -| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | - --- -### 알림 그룹 수정하기 +### 알림 그룹 생성하기 ```http -PUT /v4.0/notification-groups/{notificationGroupId} +POST /v4.0/notification-groups ``` -#### 필요 권한 - -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMariaDB:NotificationGroup.Modify | 알림 그룹 수정하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|------|---------|----|-----------------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | -| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | -| notifyEmail | Body | Boolean | X | 이메일 알림 여부 | -| notifySms | Body | Boolean | X | SMS 알림 여부 | -| isEnabled | Body | Boolean | X | 활성화 여부 | -| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | -| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupName | Body | String | O | 알림 그룹을 식별할 수 있는 이름
- 최소 길이: `1`
- 최대 길이: `100` | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `true` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `true` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `true` | +| dbInstanceIds | Body | Array | O | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | O | 사용자 그룹의 식별자 목록 |
예시

```json { + "notificationGroupName": "notificationGroupName", "notifyEmail": true, - "dbInstanceIds": [ - "ed5cb985-526f-4c54-9ae0-40288593de65", - "d51b7da0-682f-47ff-b588-b739f6adc740" - ] + "notifySms": true, + "isEnabled": true, + "dbInstanceIds": [], + "userGroupIds": [] } ``` @@ -4722,7 +4647,9 @@ PUT /v4.0/notification-groups/{notificationGroupId} #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 |

예시

@@ -4733,7 +4660,8 @@ PUT /v4.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example" } ``` @@ -4748,23 +4676,51 @@ PUT /v4.0/notification-groups/{notificationGroupId} DELETE /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### 알림 그룹 상세 보기 -| 권한명 | 설명 | -|------------------------------------------------------|------------| -| RDSforMariaDB:NotificationGroup.Delete | 알림 그룹 삭제하기 | +```http +GET /v4.0/notification-groups/{notificationGroupId} +``` #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|---------------------|-----|------|----|------------| -| notificationGroupId | URL | UUID | O | 알림 그룹의 식별자 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | 이메일 알림 여부 | +| notifySms | Body | Boolean | SMS 알림 여부 | +| isEnabled | Body | Boolean | 활성화 여부 | +| dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | +| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | +| userGroups | Body | Array | 사용자 그룹 목록 | +| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | +| createdYmdt | Body | DateTime | 생성 일시 | +| updatedYmdt | Body | DateTime | 수정 일시 |

예시

@@ -4775,7 +4731,24 @@ DELETE /v4.0/notification-groups/{notificationGroupId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstances": [ + { + "dbInstanceName": "dbInstanceName-example" + } + ], + "userGroups": [ + { + "userGroupName": "userGroupName-example" + } + ], + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" } ``` @@ -4784,112 +4757,96 @@ DELETE /v4.0/notification-groups/{notificationGroupId} --- -## 모니터링 - -### Metric 목록 보기 +### 알림 그룹 수정하기 ```http -GET /v4.0/metrics +PUT /v4.0/notification-groups/{notificationGroupId} ``` -#### 필요 권한 - -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMariaDB:Metric.List | 통계 정보 조회 | - #### 요청 -이 API는 요청 본문을 요구하지 않습니다. - -#### 응답 - -| 이름 | 종류 | 형식 | 설명 | -|---------------------|------|--------|-----------| -| metrics | Body | Array | Metric 목록 | -| metrics.measureName | Body | Enum | 조회 지표 유형 | -| metrics.unit | Body | String | 측정값 단위 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| notificationGroupId | URL | UUID | O | | +| notificationGroupName | Body | String | X | 알림 그룹을 식별할 수 있는 이름 | +| notifyEmail | Body | Boolean | X | 이메일 알림 여부
- 기본값: `false` | +| notifySms | Body | Boolean | X | SMS 알림 여부
- 기본값: `false` | +| isEnabled | Body | Boolean | X | 활성화 여부
- 기본값: `false` | +| dbInstanceIds | Body | Array | X | 감시 대상 DB 인스턴스의 식별자 목록 | +| userGroupIds | Body | Array | X | 사용자 그룹의 식별자 목록 |

예시

```json { - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - }, - "metrics": [ - { - "measureName": "CPU_USAGE", - "unit": "%" - } - ] + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "dbInstanceIds": [], + "userGroupIds": [] } ```

+#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + --- +## 모니터링 + ### 통계 정보 조회 ```http GET /v4.0/metric-statistics ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- + +### Metric 목록 보기 -| 권한명 | 설명 | -|-----------------------------------------|----------| -| RDSforMariaDB:Metric.List | 통계 정보 조회 | +```http +GET /v4.0/metrics +``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|--------------|-------|----------|----|-----------------------------------| -| dbInstanceId | Query | UUID | O | DB 인스턴스의 식별자 | -| measureNames | Query | Array | O | 조회 지표 목록
- 최소 크기: `1` | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| interval | Query | Number | X | 조회 간격 | +이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------|------|-----------|----------| -| metricStatistics | Body | Array | 통계 정보 목록 | -| metricStatistics.measureName | Body | Enum | 측정 항목 유형 | -| metricStatistics.unit | Body | String | 측정값 단위 | -| metricStatistics.values | Body | Array | 측정값 목록 | -| metricStatistics.values.timestamp | Body | Timestamp | 측정 시간 | -| metricStatistics.values.value | Body | Object | 측정값 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| metrics | Body | Array | Metric 목록 | +| metrics.measureName | Body | String | 조회 지표 유형 | +| metrics.unit | Body | String | 측정값 단위 |
예시

```json { - "metricStatistics": [ + "header": { + "resultCode": 0, + "resultMessage": "SUCCESS", + "isSuccessful": true + }, + "metrics": [ { - "measureName": "MYSQL_STATUS", - "unit": "", - "values": [ - [ - 1679298540, - "1" - ], - [ - 1679298600, - "1" - ], - [ - 1679298660, - "1" - ] - ] + "unit": "unit-example" } ] } @@ -4915,47 +4872,23 @@ GET /v4.0/metric-statistics | TENANT | 테넌트 | | MONITORING | 모니터링 | -### 이벤트 목록 조회 +### 구독 가능한 이벤트 코드 목록 보기 ```http -GET /v4.0/events +GET /v4.0/event-codes ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMariaDB:Event.List | 이벤트 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|--------------------------------------------------------------------------------------------------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | -| from | Query | Datetime | O | 시작 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| to | Query | Datetime | O | 종료 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | -| eventCategoryType | Query | Enum | O | 조회할 이벤트 카테고리 유형
- `ALL`: 전체
- `INSTANCE`: DB 인스턴스
- `BACKUP`: 백업
- `DB_SECURITY_GROUP`: DB 보안 그룹
- `TENANT`: 테넌트 | -| sourceId | Query | String | X | 이벤트가 발생한 대상 리소스의 식별자 | -| keyword | Query | String | X | 이벤트 메시지에 포함된 문자열 검색어 | -| ascendingOrder | Query | Enum | X | 이벤트 메시지 정렬 순서
- `ASC`: 오름차순
- `DESC`: 내림차순
- 기본값: `DESC` | - #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|--------------------------|------|----------|---------------------------------------| -| totalCounts | Body | Number | 전체 이벤트 목록 수 | -| events | Body | Array | 이벤트 목록 | -| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | -| events.sourceId | Body | String | 이벤트 소스의 식별자 | -| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | -| events.messages | Body | Array | 이벤트 메시지 목록 | -| events.messages.langCode | Body | String | 언어 코드 | -| events.messages.message | Body | String | 이벤트 메시지 | -| events.eventYmdt | Body | DateTime | 이벤트 발생 일시(YYYY-MM-DDThh:mm:ss.SSSTZD) | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventCodes | Body | Array | 이벤트 코드 목록 | +| eventCodes.eventCode | Body | Enum | 이벤트 코드 | +| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT |

예시

@@ -4967,32 +4900,9 @@ GET /v4.0/events "resultMessage": "SUCCESS", "isSuccessful": true }, - "totalCounts": 28, - "events": [ + "eventCodes": [ { - "eventCategoryType": "INSTANCE", - "eventCode": "INSTC_02_01", - "sourceId": "76f00947-356e-4a20-8922-428368cc45ed", - "sourceName": "db-instance", - "messages": [ - { - "langCode": "EN", - "message": "DB instance started" - }, - { - "langCode": "JA", - "message": "DBインスタンスの起動" - }, - { - "langCode": "KO", - "message": "DB 인스턴스 시작" - }, - { - "langCode": "ZH", - "message": "DB instance started" - } - ], - "eventYmdt": "2023-03-20T16:31:59+09:00" + "eventCategoryType": "ALL" } ] } @@ -5003,29 +4913,30 @@ GET /v4.0/events --- -### 구독 가능한 이벤트 코드 목록 보기 +### 이벤트 목록 조회 ```http -GET /v4.0/event-codes +GET /v4.0/events ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------|-----------| -| RDSforMariaDB:Event.List | 이벤트 목록 보기 | - #### 요청 이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|------------------------------|------|-------|-------------| -| eventCodes | Body | Array | 이벤트 코드 목록 | -| eventCodes.eventCode | Body | Enum | 이벤트 코드 | -| eventCodes.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 목록 수 | +| events | Body | Array | 이벤트 목록 | +| events.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| events.eventCode | Body | Enum | 발생한 이벤트의 유형 | +| events.sourceId | Body | String | 이벤트 소스의 식별자 | +| events.sourceName | Body | String | 이벤트 소스를 식별할 수 있는 이름 | +| events.messages | Body | Array | 이벤트 메세지 목록 | +| events.messages.langCode | Body | Enum | 언어 코드
- KO
- EN
- JA
- ZH | +| events.messages.message | Body | String | 이벤트 메세지 | +| events.eventYmdt | Body | DateTime | 이벤트 발생 일시 |

예시

@@ -5037,10 +4948,10 @@ GET /v4.0/event-codes "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventCodes": [ + "totalCounts": 1, + "events": [ { - "eventCode": "INSTC_05_01", - "eventCategoryType": "INSTANCE" + "eventYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -5059,40 +4970,28 @@ GET /v4.0/event-codes GET /v4.0/event-subscriptions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|---------------------------------------------------------|---------------| -| RDSforMariaDB:EventSubscription.List | 이벤트 구독 목록 조회 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-------------------|-------|----------|----|------------------------------------------| -| page | Query | Number | X | 조회할 목록의 페이지
- 기본값: 1
- 최솟값: `1` | -| size | Query | Number | X | 조회할 목록의 페이지 크기
- 기본값: 20 | -| eventSubscriptionId | Query | UUID | X | 이벤트 구독의 식별자 | -| eventSubscriptionName | Query | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| userGroupId | Query | UUID | X | 사용자 그룹의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------------------------------|------|----------|--------------------------| -| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | -| eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트의 구독 식별자 | -| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독을 식별할 수 있는 이름 | -| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | -| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | -| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | -| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | -| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | -| eventSubscriptions.sources.sourceId | Body | UUID | 이벤트 소스의 식별자 | -| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형 | -| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | -| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | +| eventSubscriptions | Body | Array | 이벤트 구독 목록 | +| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | +| eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | +| eventSubscriptions.notifyEmail | Body | Boolean | 이메일 발송 여부 | +| eventSubscriptions.notifySms | Body | Boolean | SMS 발송 여부 | +| eventSubscriptions.eventCodes | Body | Array | 구독할 이벤트 코드 목록 | +| eventSubscriptions.sources | Body | Array | 구독할 이벤트 소스 목록 | +| eventSubscriptions.sources.sourceId | Body | String | 이벤트 소스의 식별자 | +| eventSubscriptions.sources.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptions.userGroupIds | Body | Array | 이벤트 구독 중인 사용자 그룹의 식별자 목록 | +| eventSubscriptions.createdYmdt | Body | DateTime | 생성 일시 |

예시

@@ -5107,25 +5006,7 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "12345678-1234-1234-1234-123456789012", - "eventCategoryType": "INSTANCE", - "eventSubscriptionName": "example-event-subscription", - "enabled": true, - "notifyEmail": true, - "notifySms": false, - "eventCodes": [ - "INSTC_05_01" - ], - "sources": [ - { - "sourceId": "87654321-4321-4321-4321-210987654321", - "eventCategoryType": "INSTANCE" - } - ], - "userGroupIds": [ - "11111111-2222-3333-4444-555555555555" - ], - "createdYmdt": "2024-01-01T12:00:00+09:00" + "createdYmdt": "2023-12-31T15:00:00+09:00" } ] } @@ -5142,49 +5023,38 @@ GET /v4.0/event-subscriptions POST /v4.0/event-subscriptions ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------------|--------------| -| RDSforMariaDB:EventSubscription.Create | 이벤트 구독 생성하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------------------|------|---------|----|-----------------------------------------| -| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형 | -| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름
- 최대 길이: `100` | -| enabled | Body | Boolean | O | 활성화 여부 | -| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | -| notifySms | Body | Boolean | O | SMS 발송 여부 | -| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | -| sources | Body | Array | O | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형 | -| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | O | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | O | 활성화 여부 | +| notifyEmail | Body | Boolean | O | 이메일 발송 여부 | +| notifySms | Body | Boolean | O | SMS 발송 여부 | +| eventCodes | Body | Array | O | 구독할 이벤트 코드 목록 | +| sources | Body | Array | O | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | O | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "eventCategoryType": "INSTANCE", - "eventSubscriptionName": "example-event-subscription", - "enabled": true, - "notifyEmail": true, + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, "notifySms": false, - "eventCodes": [ - "INSTC_05_01" - ], + "eventCodes": [], "sources": [ { - "sourceId": "87654321-4321-4321-4321-210987654321", - "eventCategoryType": "INSTANCE" + "eventCategoryType": "ALL" } ], - "userGroupIds": [ - "11111111-2222-3333-4444-555555555555" - ] + "userGroupIds": [] } ``` @@ -5193,9 +5063,9 @@ POST /v4.0/event-subscriptions #### 응답 -| 이름 | 종류 | 형식 | 설명 | -|-----------------------|------|------|-------------| -| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 |

예시

@@ -5207,7 +5077,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "12345678-1234-1234-1234-123456789012" + "eventSubscriptionId": "eventSubscriptionId-example" } ``` @@ -5216,57 +5086,65 @@ POST /v4.0/event-subscriptions --- -### 이벤트 구독 수정하기 +### 이벤트 구독 삭제하기 ```http -PUT /v4.0/event-subscriptions/{eventSubscriptionId} +DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` -#### 필요 권한 +#### 요청 + +이 API는 요청 본문을 요구하지 않습니다. + +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | + +#### 응답 + +이 API는 응답 본문을 반환하지 않습니다. + +--- -| 권한명 | 설명 | -|----------------------------------------------------------|--------------| -| RDSforMariaDB:EventSubscription.Modify | 이벤트 구독 수정하기 | +### 이벤트 구독 수정하기 + +```http +PUT /v4.0/event-subscriptions/{eventSubscriptionId} +``` #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|------------------------------|------|---------|----|-----------------------------------| -| eventSubscriptionId | URL | UUID | O | 이벤트 구독의 식별자 | -| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형 | -| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | -| enabled | Body | Boolean | X | 활성화 여부 | -| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | -| notifySms | Body | Boolean | X | SMS 발송 여부 | -| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | -| sources | Body | Array | X | 구독할 이벤트 소스 목록 | -| sources.sourceId | Body | UUID | X | 이벤트 소스의 식별자 | -| sources.eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형 | -| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 | +| 이름 | 종류 | 형식 | 필수 | 설명 | +|-----|-----|-----|-----|-----| +| eventSubscriptionId | URL | UUID | O | | +| eventCategoryType | Body | Enum | X | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| eventSubscriptionName | Body | String | X | 이벤트 구독을 식별할 수 있는 이름 | +| enabled | Body | Boolean | X | 활성화 여부 | +| notifyEmail | Body | Boolean | X | 이메일 발송 여부 | +| notifySms | Body | Boolean | X | SMS 발송 여부 | +| eventCodes | Body | Array | X | 구독할 이벤트 코드 목록 | +| sources | Body | Array | X | 구독할 이벤트 소스 목록 | +| sources.sourceId | Body | UUID | O | 이벤트 소스의 식별자 | +| sources.eventCategoryType | Body | Enum | O | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | +| userGroupIds | Body | Array | X | 이벤트 구독할 사용자 그룹의 식별자 목록 |

예시

```json { - "eventSubscriptionName": "updated-event-subscription", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, "notifyEmail": false, - "notifySms": true, - "eventCodes": [ - "INSTC_05_01", - "INSTC_06_01" - ], + "notifySms": false, + "eventCodes": [], "sources": [ { - "sourceId": "87654321-4321-4321-4321-210987654321", - "eventCategoryType": "INSTANCE" + "eventCategoryType": "ALL" } ], - "userGroupIds": [ - "11111111-2222-3333-4444-555555555555", - "22222222-3333-4444-5555-666666666666" - ] + "userGroupIds": [] } ``` @@ -5277,45 +5155,28 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} 이 API는 응답 본문을 반환하지 않습니다. -

예시 -

- -```json -{ - "header": { - "resultCode": 0, - "resultMessage": "SUCCESS", - "isSuccessful": true - } -} -``` - -

-
- --- -### 이벤트 구독 삭제하기 +## 가용성 영역 + +### 가용성 영역 목록 보기 ```http -DELETE /v4.0/event-subscriptions/{eventSubscriptionId} +GET /v4.0/availability-zones ``` -#### 필요 권한 - -| 권한명 | 설명 | -|----------------------------------------------------------|--------------| -| RDSforMariaDB:EventSubscription.Delete | 이벤트 구독 삭제하기 | - #### 요청 -| 이름 | 종류 | 형식 | 필수 | 설명 | -|-----------------------|-----|------|----|-------------| -| eventSubscriptionId | URL | UUID | O | 이벤트 구독의 식별자 | +이 API는 요청 본문을 요구하지 않습니다. #### 응답 -이 API는 응답 본문을 반환하지 않습니다. +| 이름 | 종류 | 형식 | 설명 | +|-----|-----|-----|-----| +| availabilityZones | Body | Array | 가용성 영역 목록 | +| availabilityZones.availabilityZoneName | Body | String | 가용성 영역 이름 | +| availabilityZones.zoneState | Body | Object | 가용성 영역 상태 | +| availabilityZones.zoneState.available | Body | Boolean | 가용성 영역의 사용 가능 여부 |
예시

@@ -5326,7 +5187,14 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} "resultCode": 0, "resultMessage": "SUCCESS", "isSuccessful": true - } + }, + "availabilityZones": [ + { + "zoneState": { + "available": false + } + } + ] } ``` @@ -5334,3 +5202,4 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId}

--- + From 35c5230d30790c76f3df2bcb698f203bcb5dcafd Mon Sep 17 00:00:00 2001 From: hyungmin-oh Date: Tue, 2 Jun 2026 17:45:27 +0900 Subject: [PATCH 4/7] =?UTF-8?q?docs:=20API=20=EA=B0=80=EC=9D=B4=EB=93=9C?= =?UTF-8?q?=20=EC=98=88=EC=8B=9C=20JSON=20=EC=A0=95=ED=95=A9=ED=99=94=20?= =?UTF-8?q?=EB=B0=8F=20=EC=84=9C=EB=B8=8C=EB=84=B7=20=EC=8B=9D=EB=B3=84?= =?UTF-8?q?=EC=9E=90=20UUID=20=ED=91=9C=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - nhn-api-codex 1.0.1 적용으로 배열 응답 예시에 모든 필드 표기(이전엔 마지막 필드만) - 서브넷 식별자(subnetId) 형식을 UUID로 표기 - mysql ko/ 전 환경(v3.0/v4.0) 및 mariadb/ko/ v4.0 재생성 반영 --- ko/api-guide-v3.0-gov.md | 141 +++++++++++++++++++++++- ko/api-guide-v3.0-ncgn.md | 141 +++++++++++++++++++++++- ko/api-guide-v3.0-ngoic.md | 141 +++++++++++++++++++++++- ko/api-guide-v3.0-ngovc.md | 141 +++++++++++++++++++++++- ko/api-guide-v3.0-ngsc.md | 141 +++++++++++++++++++++++- ko/api-guide-v3.0-ninc.md | 141 +++++++++++++++++++++++- ko/api-guide-v3.0.md | 141 +++++++++++++++++++++++- ko/api-guide-v4.0-gov.md | 178 ++++++++++++++++++++++++++++++- ko/api-guide-v4.0-ncgn.md | 178 ++++++++++++++++++++++++++++++- ko/api-guide-v4.0-ngoic.md | 178 ++++++++++++++++++++++++++++++- ko/api-guide-v4.0-ngovc.md | 178 ++++++++++++++++++++++++++++++- ko/api-guide-v4.0-ngsc.md | 178 ++++++++++++++++++++++++++++++- ko/api-guide-v4.0-ninc.md | 178 ++++++++++++++++++++++++++++++- ko/api-guide-v4.0.md | 178 ++++++++++++++++++++++++++++++- mariadb/ko/api-guide-v4.0-gov.md | 178 ++++++++++++++++++++++++++++++- mariadb/ko/api-guide-v4.0.md | 178 ++++++++++++++++++++++++++++++- 16 files changed, 2573 insertions(+), 16 deletions(-) diff --git a/ko/api-guide-v3.0-gov.md b/ko/api-guide-v3.0-gov.md index c5c6f97a..27e79667 100644 --- a/ko/api-guide-v3.0-gov.md +++ b/ko/api-guide-v3.0-gov.md @@ -123,6 +123,9 @@ GET /v3.0/project/members }, "members": [ { + "memberId": "memberId-example", + "memberName": "memberName-example", + "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" } ] @@ -164,6 +167,7 @@ GET /v3.0/project/regions }, "regions": [ { + "regionCode": "KR1", "isEnabled": false } ] @@ -209,6 +213,9 @@ GET /v3.0/db-flavors }, "dbFlavors": [ { + "dbFlavorId": "dbFlavorId-example", + "dbFlavorName": "dbFlavorName-example", + "ram": 1, "vcpus": 1 } ] @@ -237,7 +244,7 @@ GET /v3.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetId | Body | UUID | 서브넷의 식별자 | | subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnets.subnetCidr | Body | String | 서브넷의 CIDR | | subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | @@ -255,6 +262,10 @@ GET /v3.0/network/subnets }, "subnets": [ { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example", + "usingGateway": false, "availableIpCount": 1 } ] @@ -299,6 +310,8 @@ GET /v3.0/db-versions }, "dbVersions": [ { + "dbVersion": "dbVersion-example", + "dbVersionName": "dbVersionName-example", "restorableFromObs": false } ] @@ -441,6 +454,7 @@ GET /v3.0/jobs/{jobId} "jobStatus": "DELETED", "resourceRelations": [ { + "resourceType": "resourceType-example", "resourceId": "resourceId-example" } ], @@ -488,6 +502,9 @@ GET /v3.0/db-instance-groups }, "dbInstanceGroups": [ { + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -540,6 +557,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "replicationType": "STANDALONE", "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } ], @@ -639,6 +658,16 @@ GET /v3.0/db-instances }, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -733,6 +762,7 @@ POST /v3.0/db-instances "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -846,6 +876,7 @@ POST /v3.0/db-instances/restore-from-obs "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1158,6 +1189,7 @@ GET /v3.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1201,6 +1233,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1349,6 +1382,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { + "dbSchemaId": "dbSchemaId-example", + "dbSchemaName": "dbSchemaName-example", + "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1491,6 +1527,14 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { + "dbUserId": "dbUserId-example", + "dbUserName": "dbUserName-example", + "host": "host-example", + "authorityType": "CUSTOM", + "dbUserStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00", + "authenticationPlugin": "NATIVE", "tlsOption": "NONE" } ] @@ -1954,6 +1998,9 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files }, "logFiles": [ { + "logFileName": "logFileName-example", + "logFileType": "ERROR", + "logFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2071,6 +2118,8 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info }, "endPoints": [ { + "domain": "domain-example", + "ipAddress": "ipAddress-example", "endPointType": "endPointType-example" } ] @@ -2237,6 +2286,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2487,6 +2537,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2758,6 +2809,15 @@ GET /v3.0/backups "totalCounts": 1, "backups": [ { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupSize": 1, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2938,6 +2998,7 @@ POST /v3.0/backups/{backupId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3018,6 +3079,11 @@ GET /v3.0/db-security-groups }, "dbSecurityGroups": [ { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3060,6 +3126,14 @@ POST /v3.0/db-security-groups "description": "description-example", "rules": [ { + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", "description": "description-example" } ] @@ -3169,6 +3243,17 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "progressStatus": "NONE", "rules": [ { + "ruleId": "ruleId-example", + "description": "description-example", + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 1, + "maxPort": 1 + }, + "cidr": "cidr-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], @@ -3424,6 +3509,12 @@ GET /v3.0/parameter-groups }, "parameterGroups": [ { + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3561,6 +3652,14 @@ GET /v3.0/parameter-groups/{parameterGroupId} "parameterGroupStatus": "STABLE", "parameters": [ { + "parameterId": "parameterId-example", + "parameterFileGroup": "CLIENT", + "parameterName": "parameterName-example", + "fileParameterName": "fileParameterName-example", + "value": "value-example", + "defaultValue": "defaultValue-example", + "allowedValue": "allowedValue-example", + "updateType": "VARIABLE", "applyType": "BOTH" } ], @@ -3681,6 +3780,7 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/parameters { "modifiedParameters": [ { + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "value": "value-example" } ] @@ -3750,6 +3850,9 @@ GET /v3.0/user-groups }, "userGroups": [ { + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3960,6 +4063,12 @@ GET /v3.0/notification-groups }, "notificationGroups": [ { + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4099,11 +4208,13 @@ GET /v3.0/notification-groups/{notificationGroupId} "isEnabled": false, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { + "userGroupId": "userGroupId-example", "userGroupName": "userGroupName-example" } ], @@ -4206,6 +4317,7 @@ GET /v3.0/metrics }, "metrics": [ { + "measureName": "measureName-example", "unit": "unit-example" } ] @@ -4262,6 +4374,7 @@ GET /v3.0/event-codes }, "eventCodes": [ { + "eventCode": "ENUM_VALUE", "eventCategoryType": "ALL" } ] @@ -4311,6 +4424,16 @@ GET /v3.0/events "totalCounts": 1, "events": [ { + "eventCategoryType": "ALL", + "eventCode": "ENUM_VALUE", + "sourceId": "sourceId-example", + "sourceName": "sourceName-example", + "messages": [ + { + "langCode": "KO", + "message": "message-example" + } + ], "eventYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4366,6 +4489,20 @@ GET /v3.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { + "eventSubscriptionId": "eventSubscriptionId-example", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "sourceId": "sourceId-example", + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [], "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4411,6 +4548,7 @@ POST /v3.0/event-subscriptions "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -4501,6 +4639,7 @@ PUT /v3.0/event-subscriptions/{eventSubscriptionId} "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], diff --git a/ko/api-guide-v3.0-ncgn.md b/ko/api-guide-v3.0-ncgn.md index cac56d50..f5397574 100644 --- a/ko/api-guide-v3.0-ncgn.md +++ b/ko/api-guide-v3.0-ncgn.md @@ -123,6 +123,9 @@ GET /v3.0/project/members }, "members": [ { + "memberId": "memberId-example", + "memberName": "memberName-example", + "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" } ] @@ -164,6 +167,7 @@ GET /v3.0/project/regions }, "regions": [ { + "regionCode": "KR1", "isEnabled": false } ] @@ -209,6 +213,9 @@ GET /v3.0/db-flavors }, "dbFlavors": [ { + "dbFlavorId": "dbFlavorId-example", + "dbFlavorName": "dbFlavorName-example", + "ram": 1, "vcpus": 1 } ] @@ -237,7 +244,7 @@ GET /v3.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetId | Body | UUID | 서브넷의 식별자 | | subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnets.subnetCidr | Body | String | 서브넷의 CIDR | | subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | @@ -255,6 +262,10 @@ GET /v3.0/network/subnets }, "subnets": [ { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example", + "usingGateway": false, "availableIpCount": 1 } ] @@ -299,6 +310,8 @@ GET /v3.0/db-versions }, "dbVersions": [ { + "dbVersion": "dbVersion-example", + "dbVersionName": "dbVersionName-example", "restorableFromObs": false } ] @@ -441,6 +454,7 @@ GET /v3.0/jobs/{jobId} "jobStatus": "DELETED", "resourceRelations": [ { + "resourceType": "resourceType-example", "resourceId": "resourceId-example" } ], @@ -488,6 +502,9 @@ GET /v3.0/db-instance-groups }, "dbInstanceGroups": [ { + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -540,6 +557,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "replicationType": "STANDALONE", "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } ], @@ -639,6 +658,16 @@ GET /v3.0/db-instances }, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -733,6 +762,7 @@ POST /v3.0/db-instances "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -846,6 +876,7 @@ POST /v3.0/db-instances/restore-from-obs "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1158,6 +1189,7 @@ GET /v3.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1201,6 +1233,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1349,6 +1382,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { + "dbSchemaId": "dbSchemaId-example", + "dbSchemaName": "dbSchemaName-example", + "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1491,6 +1527,14 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { + "dbUserId": "dbUserId-example", + "dbUserName": "dbUserName-example", + "host": "host-example", + "authorityType": "CUSTOM", + "dbUserStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00", + "authenticationPlugin": "NATIVE", "tlsOption": "NONE" } ] @@ -1954,6 +1998,9 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files }, "logFiles": [ { + "logFileName": "logFileName-example", + "logFileType": "ERROR", + "logFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2071,6 +2118,8 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info }, "endPoints": [ { + "domain": "domain-example", + "ipAddress": "ipAddress-example", "endPointType": "endPointType-example" } ] @@ -2237,6 +2286,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2487,6 +2537,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2758,6 +2809,15 @@ GET /v3.0/backups "totalCounts": 1, "backups": [ { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupSize": 1, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2938,6 +2998,7 @@ POST /v3.0/backups/{backupId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3018,6 +3079,11 @@ GET /v3.0/db-security-groups }, "dbSecurityGroups": [ { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3060,6 +3126,14 @@ POST /v3.0/db-security-groups "description": "description-example", "rules": [ { + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", "description": "description-example" } ] @@ -3169,6 +3243,17 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "progressStatus": "NONE", "rules": [ { + "ruleId": "ruleId-example", + "description": "description-example", + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 1, + "maxPort": 1 + }, + "cidr": "cidr-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], @@ -3424,6 +3509,12 @@ GET /v3.0/parameter-groups }, "parameterGroups": [ { + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3561,6 +3652,14 @@ GET /v3.0/parameter-groups/{parameterGroupId} "parameterGroupStatus": "STABLE", "parameters": [ { + "parameterId": "parameterId-example", + "parameterFileGroup": "CLIENT", + "parameterName": "parameterName-example", + "fileParameterName": "fileParameterName-example", + "value": "value-example", + "defaultValue": "defaultValue-example", + "allowedValue": "allowedValue-example", + "updateType": "VARIABLE", "applyType": "BOTH" } ], @@ -3681,6 +3780,7 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/parameters { "modifiedParameters": [ { + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "value": "value-example" } ] @@ -3750,6 +3850,9 @@ GET /v3.0/user-groups }, "userGroups": [ { + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3960,6 +4063,12 @@ GET /v3.0/notification-groups }, "notificationGroups": [ { + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4099,11 +4208,13 @@ GET /v3.0/notification-groups/{notificationGroupId} "isEnabled": false, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { + "userGroupId": "userGroupId-example", "userGroupName": "userGroupName-example" } ], @@ -4206,6 +4317,7 @@ GET /v3.0/metrics }, "metrics": [ { + "measureName": "measureName-example", "unit": "unit-example" } ] @@ -4262,6 +4374,7 @@ GET /v3.0/event-codes }, "eventCodes": [ { + "eventCode": "ENUM_VALUE", "eventCategoryType": "ALL" } ] @@ -4311,6 +4424,16 @@ GET /v3.0/events "totalCounts": 1, "events": [ { + "eventCategoryType": "ALL", + "eventCode": "ENUM_VALUE", + "sourceId": "sourceId-example", + "sourceName": "sourceName-example", + "messages": [ + { + "langCode": "KO", + "message": "message-example" + } + ], "eventYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4366,6 +4489,20 @@ GET /v3.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { + "eventSubscriptionId": "eventSubscriptionId-example", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "sourceId": "sourceId-example", + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [], "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4411,6 +4548,7 @@ POST /v3.0/event-subscriptions "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -4501,6 +4639,7 @@ PUT /v3.0/event-subscriptions/{eventSubscriptionId} "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], diff --git a/ko/api-guide-v3.0-ngoic.md b/ko/api-guide-v3.0-ngoic.md index ae07811a..4de6b338 100644 --- a/ko/api-guide-v3.0-ngoic.md +++ b/ko/api-guide-v3.0-ngoic.md @@ -123,6 +123,9 @@ GET /v3.0/project/members }, "members": [ { + "memberId": "memberId-example", + "memberName": "memberName-example", + "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" } ] @@ -164,6 +167,7 @@ GET /v3.0/project/regions }, "regions": [ { + "regionCode": "KR4", "isEnabled": false } ] @@ -209,6 +213,9 @@ GET /v3.0/db-flavors }, "dbFlavors": [ { + "dbFlavorId": "dbFlavorId-example", + "dbFlavorName": "dbFlavorName-example", + "ram": 1, "vcpus": 1 } ] @@ -237,7 +244,7 @@ GET /v3.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetId | Body | UUID | 서브넷의 식별자 | | subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnets.subnetCidr | Body | String | 서브넷의 CIDR | | subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | @@ -255,6 +262,10 @@ GET /v3.0/network/subnets }, "subnets": [ { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example", + "usingGateway": false, "availableIpCount": 1 } ] @@ -299,6 +310,8 @@ GET /v3.0/db-versions }, "dbVersions": [ { + "dbVersion": "dbVersion-example", + "dbVersionName": "dbVersionName-example", "restorableFromObs": false } ] @@ -441,6 +454,7 @@ GET /v3.0/jobs/{jobId} "jobStatus": "DELETED", "resourceRelations": [ { + "resourceType": "resourceType-example", "resourceId": "resourceId-example" } ], @@ -488,6 +502,9 @@ GET /v3.0/db-instance-groups }, "dbInstanceGroups": [ { + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -540,6 +557,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "replicationType": "STANDALONE", "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } ], @@ -639,6 +658,16 @@ GET /v3.0/db-instances }, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -733,6 +762,7 @@ POST /v3.0/db-instances "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -846,6 +876,7 @@ POST /v3.0/db-instances/restore-from-obs "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1158,6 +1189,7 @@ GET /v3.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1201,6 +1233,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1349,6 +1382,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { + "dbSchemaId": "dbSchemaId-example", + "dbSchemaName": "dbSchemaName-example", + "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1491,6 +1527,14 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { + "dbUserId": "dbUserId-example", + "dbUserName": "dbUserName-example", + "host": "host-example", + "authorityType": "CUSTOM", + "dbUserStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00", + "authenticationPlugin": "NATIVE", "tlsOption": "NONE" } ] @@ -1954,6 +1998,9 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files }, "logFiles": [ { + "logFileName": "logFileName-example", + "logFileType": "ERROR", + "logFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2071,6 +2118,8 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info }, "endPoints": [ { + "domain": "domain-example", + "ipAddress": "ipAddress-example", "endPointType": "endPointType-example" } ] @@ -2237,6 +2286,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2487,6 +2537,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2758,6 +2809,15 @@ GET /v3.0/backups "totalCounts": 1, "backups": [ { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupSize": 1, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2938,6 +2998,7 @@ POST /v3.0/backups/{backupId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3018,6 +3079,11 @@ GET /v3.0/db-security-groups }, "dbSecurityGroups": [ { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3060,6 +3126,14 @@ POST /v3.0/db-security-groups "description": "description-example", "rules": [ { + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", "description": "description-example" } ] @@ -3169,6 +3243,17 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "progressStatus": "NONE", "rules": [ { + "ruleId": "ruleId-example", + "description": "description-example", + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 1, + "maxPort": 1 + }, + "cidr": "cidr-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], @@ -3424,6 +3509,12 @@ GET /v3.0/parameter-groups }, "parameterGroups": [ { + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3561,6 +3652,14 @@ GET /v3.0/parameter-groups/{parameterGroupId} "parameterGroupStatus": "STABLE", "parameters": [ { + "parameterId": "parameterId-example", + "parameterFileGroup": "CLIENT", + "parameterName": "parameterName-example", + "fileParameterName": "fileParameterName-example", + "value": "value-example", + "defaultValue": "defaultValue-example", + "allowedValue": "allowedValue-example", + "updateType": "VARIABLE", "applyType": "BOTH" } ], @@ -3681,6 +3780,7 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/parameters { "modifiedParameters": [ { + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "value": "value-example" } ] @@ -3750,6 +3850,9 @@ GET /v3.0/user-groups }, "userGroups": [ { + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3960,6 +4063,12 @@ GET /v3.0/notification-groups }, "notificationGroups": [ { + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4099,11 +4208,13 @@ GET /v3.0/notification-groups/{notificationGroupId} "isEnabled": false, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { + "userGroupId": "userGroupId-example", "userGroupName": "userGroupName-example" } ], @@ -4206,6 +4317,7 @@ GET /v3.0/metrics }, "metrics": [ { + "measureName": "measureName-example", "unit": "unit-example" } ] @@ -4262,6 +4374,7 @@ GET /v3.0/event-codes }, "eventCodes": [ { + "eventCode": "ENUM_VALUE", "eventCategoryType": "ALL" } ] @@ -4311,6 +4424,16 @@ GET /v3.0/events "totalCounts": 1, "events": [ { + "eventCategoryType": "ALL", + "eventCode": "ENUM_VALUE", + "sourceId": "sourceId-example", + "sourceName": "sourceName-example", + "messages": [ + { + "langCode": "KO", + "message": "message-example" + } + ], "eventYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4366,6 +4489,20 @@ GET /v3.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { + "eventSubscriptionId": "eventSubscriptionId-example", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "sourceId": "sourceId-example", + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [], "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4411,6 +4548,7 @@ POST /v3.0/event-subscriptions "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -4501,6 +4639,7 @@ PUT /v3.0/event-subscriptions/{eventSubscriptionId} "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], diff --git a/ko/api-guide-v3.0-ngovc.md b/ko/api-guide-v3.0-ngovc.md index 7136f9cf..76e2af24 100644 --- a/ko/api-guide-v3.0-ngovc.md +++ b/ko/api-guide-v3.0-ngovc.md @@ -123,6 +123,9 @@ GET /v3.0/project/members }, "members": [ { + "memberId": "memberId-example", + "memberName": "memberName-example", + "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" } ] @@ -164,6 +167,7 @@ GET /v3.0/project/regions }, "regions": [ { + "regionCode": "KR4", "isEnabled": false } ] @@ -209,6 +213,9 @@ GET /v3.0/db-flavors }, "dbFlavors": [ { + "dbFlavorId": "dbFlavorId-example", + "dbFlavorName": "dbFlavorName-example", + "ram": 1, "vcpus": 1 } ] @@ -237,7 +244,7 @@ GET /v3.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetId | Body | UUID | 서브넷의 식별자 | | subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnets.subnetCidr | Body | String | 서브넷의 CIDR | | subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | @@ -255,6 +262,10 @@ GET /v3.0/network/subnets }, "subnets": [ { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example", + "usingGateway": false, "availableIpCount": 1 } ] @@ -299,6 +310,8 @@ GET /v3.0/db-versions }, "dbVersions": [ { + "dbVersion": "dbVersion-example", + "dbVersionName": "dbVersionName-example", "restorableFromObs": false } ] @@ -441,6 +454,7 @@ GET /v3.0/jobs/{jobId} "jobStatus": "DELETED", "resourceRelations": [ { + "resourceType": "resourceType-example", "resourceId": "resourceId-example" } ], @@ -488,6 +502,9 @@ GET /v3.0/db-instance-groups }, "dbInstanceGroups": [ { + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -540,6 +557,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "replicationType": "STANDALONE", "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } ], @@ -639,6 +658,16 @@ GET /v3.0/db-instances }, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -733,6 +762,7 @@ POST /v3.0/db-instances "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -846,6 +876,7 @@ POST /v3.0/db-instances/restore-from-obs "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1158,6 +1189,7 @@ GET /v3.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1201,6 +1233,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1349,6 +1382,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { + "dbSchemaId": "dbSchemaId-example", + "dbSchemaName": "dbSchemaName-example", + "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1491,6 +1527,14 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { + "dbUserId": "dbUserId-example", + "dbUserName": "dbUserName-example", + "host": "host-example", + "authorityType": "CUSTOM", + "dbUserStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00", + "authenticationPlugin": "NATIVE", "tlsOption": "NONE" } ] @@ -1954,6 +1998,9 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files }, "logFiles": [ { + "logFileName": "logFileName-example", + "logFileType": "ERROR", + "logFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2071,6 +2118,8 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info }, "endPoints": [ { + "domain": "domain-example", + "ipAddress": "ipAddress-example", "endPointType": "endPointType-example" } ] @@ -2237,6 +2286,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2487,6 +2537,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2758,6 +2809,15 @@ GET /v3.0/backups "totalCounts": 1, "backups": [ { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupSize": 1, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2938,6 +2998,7 @@ POST /v3.0/backups/{backupId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3018,6 +3079,11 @@ GET /v3.0/db-security-groups }, "dbSecurityGroups": [ { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3060,6 +3126,14 @@ POST /v3.0/db-security-groups "description": "description-example", "rules": [ { + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", "description": "description-example" } ] @@ -3169,6 +3243,17 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "progressStatus": "NONE", "rules": [ { + "ruleId": "ruleId-example", + "description": "description-example", + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 1, + "maxPort": 1 + }, + "cidr": "cidr-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], @@ -3424,6 +3509,12 @@ GET /v3.0/parameter-groups }, "parameterGroups": [ { + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3561,6 +3652,14 @@ GET /v3.0/parameter-groups/{parameterGroupId} "parameterGroupStatus": "STABLE", "parameters": [ { + "parameterId": "parameterId-example", + "parameterFileGroup": "CLIENT", + "parameterName": "parameterName-example", + "fileParameterName": "fileParameterName-example", + "value": "value-example", + "defaultValue": "defaultValue-example", + "allowedValue": "allowedValue-example", + "updateType": "VARIABLE", "applyType": "BOTH" } ], @@ -3681,6 +3780,7 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/parameters { "modifiedParameters": [ { + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "value": "value-example" } ] @@ -3750,6 +3850,9 @@ GET /v3.0/user-groups }, "userGroups": [ { + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3960,6 +4063,12 @@ GET /v3.0/notification-groups }, "notificationGroups": [ { + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4099,11 +4208,13 @@ GET /v3.0/notification-groups/{notificationGroupId} "isEnabled": false, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { + "userGroupId": "userGroupId-example", "userGroupName": "userGroupName-example" } ], @@ -4206,6 +4317,7 @@ GET /v3.0/metrics }, "metrics": [ { + "measureName": "measureName-example", "unit": "unit-example" } ] @@ -4262,6 +4374,7 @@ GET /v3.0/event-codes }, "eventCodes": [ { + "eventCode": "ENUM_VALUE", "eventCategoryType": "ALL" } ] @@ -4311,6 +4424,16 @@ GET /v3.0/events "totalCounts": 1, "events": [ { + "eventCategoryType": "ALL", + "eventCode": "ENUM_VALUE", + "sourceId": "sourceId-example", + "sourceName": "sourceName-example", + "messages": [ + { + "langCode": "KO", + "message": "message-example" + } + ], "eventYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4366,6 +4489,20 @@ GET /v3.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { + "eventSubscriptionId": "eventSubscriptionId-example", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "sourceId": "sourceId-example", + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [], "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4411,6 +4548,7 @@ POST /v3.0/event-subscriptions "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -4501,6 +4639,7 @@ PUT /v3.0/event-subscriptions/{eventSubscriptionId} "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], diff --git a/ko/api-guide-v3.0-ngsc.md b/ko/api-guide-v3.0-ngsc.md index 86f13578..e0bde4be 100644 --- a/ko/api-guide-v3.0-ngsc.md +++ b/ko/api-guide-v3.0-ngsc.md @@ -123,6 +123,9 @@ GET /v3.0/project/members }, "members": [ { + "memberId": "memberId-example", + "memberName": "memberName-example", + "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" } ] @@ -164,6 +167,7 @@ GET /v3.0/project/regions }, "regions": [ { + "regionCode": "KR4", "isEnabled": false } ] @@ -209,6 +213,9 @@ GET /v3.0/db-flavors }, "dbFlavors": [ { + "dbFlavorId": "dbFlavorId-example", + "dbFlavorName": "dbFlavorName-example", + "ram": 1, "vcpus": 1 } ] @@ -237,7 +244,7 @@ GET /v3.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetId | Body | UUID | 서브넷의 식별자 | | subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnets.subnetCidr | Body | String | 서브넷의 CIDR | | subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | @@ -255,6 +262,10 @@ GET /v3.0/network/subnets }, "subnets": [ { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example", + "usingGateway": false, "availableIpCount": 1 } ] @@ -299,6 +310,8 @@ GET /v3.0/db-versions }, "dbVersions": [ { + "dbVersion": "dbVersion-example", + "dbVersionName": "dbVersionName-example", "restorableFromObs": false } ] @@ -441,6 +454,7 @@ GET /v3.0/jobs/{jobId} "jobStatus": "DELETED", "resourceRelations": [ { + "resourceType": "resourceType-example", "resourceId": "resourceId-example" } ], @@ -488,6 +502,9 @@ GET /v3.0/db-instance-groups }, "dbInstanceGroups": [ { + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -540,6 +557,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "replicationType": "STANDALONE", "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } ], @@ -639,6 +658,16 @@ GET /v3.0/db-instances }, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -733,6 +762,7 @@ POST /v3.0/db-instances "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -846,6 +876,7 @@ POST /v3.0/db-instances/restore-from-obs "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1158,6 +1189,7 @@ GET /v3.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1201,6 +1233,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1349,6 +1382,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { + "dbSchemaId": "dbSchemaId-example", + "dbSchemaName": "dbSchemaName-example", + "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1491,6 +1527,14 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { + "dbUserId": "dbUserId-example", + "dbUserName": "dbUserName-example", + "host": "host-example", + "authorityType": "CUSTOM", + "dbUserStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00", + "authenticationPlugin": "NATIVE", "tlsOption": "NONE" } ] @@ -1954,6 +1998,9 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files }, "logFiles": [ { + "logFileName": "logFileName-example", + "logFileType": "ERROR", + "logFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2071,6 +2118,8 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info }, "endPoints": [ { + "domain": "domain-example", + "ipAddress": "ipAddress-example", "endPointType": "endPointType-example" } ] @@ -2237,6 +2286,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2487,6 +2537,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2758,6 +2809,15 @@ GET /v3.0/backups "totalCounts": 1, "backups": [ { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupSize": 1, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2938,6 +2998,7 @@ POST /v3.0/backups/{backupId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3018,6 +3079,11 @@ GET /v3.0/db-security-groups }, "dbSecurityGroups": [ { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3060,6 +3126,14 @@ POST /v3.0/db-security-groups "description": "description-example", "rules": [ { + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", "description": "description-example" } ] @@ -3169,6 +3243,17 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "progressStatus": "NONE", "rules": [ { + "ruleId": "ruleId-example", + "description": "description-example", + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 1, + "maxPort": 1 + }, + "cidr": "cidr-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], @@ -3424,6 +3509,12 @@ GET /v3.0/parameter-groups }, "parameterGroups": [ { + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3561,6 +3652,14 @@ GET /v3.0/parameter-groups/{parameterGroupId} "parameterGroupStatus": "STABLE", "parameters": [ { + "parameterId": "parameterId-example", + "parameterFileGroup": "CLIENT", + "parameterName": "parameterName-example", + "fileParameterName": "fileParameterName-example", + "value": "value-example", + "defaultValue": "defaultValue-example", + "allowedValue": "allowedValue-example", + "updateType": "VARIABLE", "applyType": "BOTH" } ], @@ -3681,6 +3780,7 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/parameters { "modifiedParameters": [ { + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "value": "value-example" } ] @@ -3750,6 +3850,9 @@ GET /v3.0/user-groups }, "userGroups": [ { + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3960,6 +4063,12 @@ GET /v3.0/notification-groups }, "notificationGroups": [ { + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4099,11 +4208,13 @@ GET /v3.0/notification-groups/{notificationGroupId} "isEnabled": false, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { + "userGroupId": "userGroupId-example", "userGroupName": "userGroupName-example" } ], @@ -4206,6 +4317,7 @@ GET /v3.0/metrics }, "metrics": [ { + "measureName": "measureName-example", "unit": "unit-example" } ] @@ -4262,6 +4374,7 @@ GET /v3.0/event-codes }, "eventCodes": [ { + "eventCode": "ENUM_VALUE", "eventCategoryType": "ALL" } ] @@ -4311,6 +4424,16 @@ GET /v3.0/events "totalCounts": 1, "events": [ { + "eventCategoryType": "ALL", + "eventCode": "ENUM_VALUE", + "sourceId": "sourceId-example", + "sourceName": "sourceName-example", + "messages": [ + { + "langCode": "KO", + "message": "message-example" + } + ], "eventYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4366,6 +4489,20 @@ GET /v3.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { + "eventSubscriptionId": "eventSubscriptionId-example", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "sourceId": "sourceId-example", + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [], "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4411,6 +4548,7 @@ POST /v3.0/event-subscriptions "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -4501,6 +4639,7 @@ PUT /v3.0/event-subscriptions/{eventSubscriptionId} "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], diff --git a/ko/api-guide-v3.0-ninc.md b/ko/api-guide-v3.0-ninc.md index f7f11d1c..e4c6747d 100644 --- a/ko/api-guide-v3.0-ninc.md +++ b/ko/api-guide-v3.0-ninc.md @@ -123,6 +123,9 @@ GET /v3.0/project/members }, "members": [ { + "memberId": "memberId-example", + "memberName": "memberName-example", + "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" } ] @@ -164,6 +167,7 @@ GET /v3.0/project/regions }, "regions": [ { + "regionCode": "KR4", "isEnabled": false } ] @@ -209,6 +213,9 @@ GET /v3.0/db-flavors }, "dbFlavors": [ { + "dbFlavorId": "dbFlavorId-example", + "dbFlavorName": "dbFlavorName-example", + "ram": 1, "vcpus": 1 } ] @@ -237,7 +244,7 @@ GET /v3.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetId | Body | UUID | 서브넷의 식별자 | | subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnets.subnetCidr | Body | String | 서브넷의 CIDR | | subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | @@ -255,6 +262,10 @@ GET /v3.0/network/subnets }, "subnets": [ { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example", + "usingGateway": false, "availableIpCount": 1 } ] @@ -299,6 +310,8 @@ GET /v3.0/db-versions }, "dbVersions": [ { + "dbVersion": "dbVersion-example", + "dbVersionName": "dbVersionName-example", "restorableFromObs": false } ] @@ -441,6 +454,7 @@ GET /v3.0/jobs/{jobId} "jobStatus": "DELETED", "resourceRelations": [ { + "resourceType": "resourceType-example", "resourceId": "resourceId-example" } ], @@ -488,6 +502,9 @@ GET /v3.0/db-instance-groups }, "dbInstanceGroups": [ { + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -540,6 +557,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "replicationType": "STANDALONE", "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } ], @@ -639,6 +658,16 @@ GET /v3.0/db-instances }, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -733,6 +762,7 @@ POST /v3.0/db-instances "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -846,6 +876,7 @@ POST /v3.0/db-instances/restore-from-obs "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1158,6 +1189,7 @@ GET /v3.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1201,6 +1233,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1349,6 +1382,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { + "dbSchemaId": "dbSchemaId-example", + "dbSchemaName": "dbSchemaName-example", + "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1491,6 +1527,14 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { + "dbUserId": "dbUserId-example", + "dbUserName": "dbUserName-example", + "host": "host-example", + "authorityType": "CUSTOM", + "dbUserStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00", + "authenticationPlugin": "NATIVE", "tlsOption": "NONE" } ] @@ -1954,6 +1998,9 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files }, "logFiles": [ { + "logFileName": "logFileName-example", + "logFileType": "ERROR", + "logFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2071,6 +2118,8 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info }, "endPoints": [ { + "domain": "domain-example", + "ipAddress": "ipAddress-example", "endPointType": "endPointType-example" } ] @@ -2237,6 +2286,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2487,6 +2537,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2758,6 +2809,15 @@ GET /v3.0/backups "totalCounts": 1, "backups": [ { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupSize": 1, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2938,6 +2998,7 @@ POST /v3.0/backups/{backupId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3018,6 +3079,11 @@ GET /v3.0/db-security-groups }, "dbSecurityGroups": [ { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3060,6 +3126,14 @@ POST /v3.0/db-security-groups "description": "description-example", "rules": [ { + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", "description": "description-example" } ] @@ -3169,6 +3243,17 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "progressStatus": "NONE", "rules": [ { + "ruleId": "ruleId-example", + "description": "description-example", + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 1, + "maxPort": 1 + }, + "cidr": "cidr-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], @@ -3424,6 +3509,12 @@ GET /v3.0/parameter-groups }, "parameterGroups": [ { + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3561,6 +3652,14 @@ GET /v3.0/parameter-groups/{parameterGroupId} "parameterGroupStatus": "STABLE", "parameters": [ { + "parameterId": "parameterId-example", + "parameterFileGroup": "CLIENT", + "parameterName": "parameterName-example", + "fileParameterName": "fileParameterName-example", + "value": "value-example", + "defaultValue": "defaultValue-example", + "allowedValue": "allowedValue-example", + "updateType": "VARIABLE", "applyType": "BOTH" } ], @@ -3681,6 +3780,7 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/parameters { "modifiedParameters": [ { + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "value": "value-example" } ] @@ -3750,6 +3850,9 @@ GET /v3.0/user-groups }, "userGroups": [ { + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3960,6 +4063,12 @@ GET /v3.0/notification-groups }, "notificationGroups": [ { + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4099,11 +4208,13 @@ GET /v3.0/notification-groups/{notificationGroupId} "isEnabled": false, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { + "userGroupId": "userGroupId-example", "userGroupName": "userGroupName-example" } ], @@ -4206,6 +4317,7 @@ GET /v3.0/metrics }, "metrics": [ { + "measureName": "measureName-example", "unit": "unit-example" } ] @@ -4262,6 +4374,7 @@ GET /v3.0/event-codes }, "eventCodes": [ { + "eventCode": "ENUM_VALUE", "eventCategoryType": "ALL" } ] @@ -4311,6 +4424,16 @@ GET /v3.0/events "totalCounts": 1, "events": [ { + "eventCategoryType": "ALL", + "eventCode": "ENUM_VALUE", + "sourceId": "sourceId-example", + "sourceName": "sourceName-example", + "messages": [ + { + "langCode": "KO", + "message": "message-example" + } + ], "eventYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4366,6 +4489,20 @@ GET /v3.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { + "eventSubscriptionId": "eventSubscriptionId-example", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "sourceId": "sourceId-example", + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [], "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4411,6 +4548,7 @@ POST /v3.0/event-subscriptions "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -4501,6 +4639,7 @@ PUT /v3.0/event-subscriptions/{eventSubscriptionId} "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], diff --git a/ko/api-guide-v3.0.md b/ko/api-guide-v3.0.md index cdbf3b08..286e1270 100644 --- a/ko/api-guide-v3.0.md +++ b/ko/api-guide-v3.0.md @@ -125,6 +125,9 @@ GET /v3.0/project/members }, "members": [ { + "memberId": "memberId-example", + "memberName": "memberName-example", + "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" } ] @@ -166,6 +169,7 @@ GET /v3.0/project/regions }, "regions": [ { + "regionCode": "KR1", "isEnabled": false } ] @@ -211,6 +215,9 @@ GET /v3.0/db-flavors }, "dbFlavors": [ { + "dbFlavorId": "dbFlavorId-example", + "dbFlavorName": "dbFlavorName-example", + "ram": 1, "vcpus": 1 } ] @@ -239,7 +246,7 @@ GET /v3.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetId | Body | UUID | 서브넷의 식별자 | | subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnets.subnetCidr | Body | String | 서브넷의 CIDR | | subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | @@ -257,6 +264,10 @@ GET /v3.0/network/subnets }, "subnets": [ { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example", + "usingGateway": false, "availableIpCount": 1 } ] @@ -301,6 +312,8 @@ GET /v3.0/db-versions }, "dbVersions": [ { + "dbVersion": "dbVersion-example", + "dbVersionName": "dbVersionName-example", "restorableFromObs": false } ] @@ -443,6 +456,7 @@ GET /v3.0/jobs/{jobId} "jobStatus": "DELETED", "resourceRelations": [ { + "resourceType": "resourceType-example", "resourceId": "resourceId-example" } ], @@ -490,6 +504,9 @@ GET /v3.0/db-instance-groups }, "dbInstanceGroups": [ { + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -542,6 +559,8 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "replicationType": "STANDALONE", "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } ], @@ -641,6 +660,16 @@ GET /v3.0/db-instances }, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -735,6 +764,7 @@ POST /v3.0/db-instances "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -848,6 +878,7 @@ POST /v3.0/db-instances/restore-from-obs "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1160,6 +1191,7 @@ GET /v3.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1203,6 +1235,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1351,6 +1384,9 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { + "dbSchemaId": "dbSchemaId-example", + "dbSchemaName": "dbSchemaName-example", + "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1493,6 +1529,14 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { + "dbUserId": "dbUserId-example", + "dbUserName": "dbUserName-example", + "host": "host-example", + "authorityType": "CUSTOM", + "dbUserStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00", + "authenticationPlugin": "NATIVE", "tlsOption": "NONE" } ] @@ -1956,6 +2000,9 @@ GET /v3.0/db-instances/{dbInstanceId}/log-files }, "logFiles": [ { + "logFileName": "logFileName-example", + "logFileType": "ERROR", + "logFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2073,6 +2120,8 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info }, "endPoints": [ { + "domain": "domain-example", + "ipAddress": "ipAddress-example", "endPointType": "endPointType-example" } ] @@ -2239,6 +2288,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2489,6 +2539,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2760,6 +2811,15 @@ GET /v3.0/backups "totalCounts": 1, "backups": [ { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupSize": 1, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2940,6 +3000,7 @@ POST /v3.0/backups/{backupId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3020,6 +3081,11 @@ GET /v3.0/db-security-groups }, "dbSecurityGroups": [ { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3062,6 +3128,14 @@ POST /v3.0/db-security-groups "description": "description-example", "rules": [ { + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", "description": "description-example" } ] @@ -3171,6 +3245,17 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "progressStatus": "NONE", "rules": [ { + "ruleId": "ruleId-example", + "description": "description-example", + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 1, + "maxPort": 1 + }, + "cidr": "cidr-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], @@ -3426,6 +3511,12 @@ GET /v3.0/parameter-groups }, "parameterGroups": [ { + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3563,6 +3654,14 @@ GET /v3.0/parameter-groups/{parameterGroupId} "parameterGroupStatus": "STABLE", "parameters": [ { + "parameterId": "parameterId-example", + "parameterFileGroup": "CLIENT", + "parameterName": "parameterName-example", + "fileParameterName": "fileParameterName-example", + "value": "value-example", + "defaultValue": "defaultValue-example", + "allowedValue": "allowedValue-example", + "updateType": "VARIABLE", "applyType": "BOTH" } ], @@ -3683,6 +3782,7 @@ PUT /v3.0/parameter-groups/{parameterGroupId}/parameters { "modifiedParameters": [ { + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "value": "value-example" } ] @@ -3752,6 +3852,9 @@ GET /v3.0/user-groups }, "userGroups": [ { + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3962,6 +4065,12 @@ GET /v3.0/notification-groups }, "notificationGroups": [ { + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4101,11 +4210,13 @@ GET /v3.0/notification-groups/{notificationGroupId} "isEnabled": false, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { + "userGroupId": "userGroupId-example", "userGroupName": "userGroupName-example" } ], @@ -4208,6 +4319,7 @@ GET /v3.0/metrics }, "metrics": [ { + "measureName": "measureName-example", "unit": "unit-example" } ] @@ -4264,6 +4376,7 @@ GET /v3.0/event-codes }, "eventCodes": [ { + "eventCode": "ENUM_VALUE", "eventCategoryType": "ALL" } ] @@ -4313,6 +4426,16 @@ GET /v3.0/events "totalCounts": 1, "events": [ { + "eventCategoryType": "ALL", + "eventCode": "ENUM_VALUE", + "sourceId": "sourceId-example", + "sourceName": "sourceName-example", + "messages": [ + { + "langCode": "KO", + "message": "message-example" + } + ], "eventYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4368,6 +4491,20 @@ GET /v3.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { + "eventSubscriptionId": "eventSubscriptionId-example", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "sourceId": "sourceId-example", + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [], "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4413,6 +4550,7 @@ POST /v3.0/event-subscriptions "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -4503,6 +4641,7 @@ PUT /v3.0/event-subscriptions/{eventSubscriptionId} "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], diff --git a/ko/api-guide-v4.0-gov.md b/ko/api-guide-v4.0-gov.md index 6f638b42..b960ef9a 100644 --- a/ko/api-guide-v4.0-gov.md +++ b/ko/api-guide-v4.0-gov.md @@ -121,6 +121,9 @@ GET /v4.0/project/members }, "members": [ { + "memberId": "memberId-example", + "memberName": "memberName-example", + "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" } ] @@ -162,6 +165,7 @@ GET /v4.0/project/regions }, "regions": [ { + "regionCode": "KR1", "isEnabled": false } ] @@ -207,6 +211,9 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { + "dbFlavorId": "dbFlavorId-example", + "dbFlavorName": "dbFlavorName-example", + "ram": 1, "vcpus": 1 } ] @@ -235,7 +242,7 @@ GET /v4.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetId | Body | UUID | 서브넷의 식별자 | | subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnets.subnetCidr | Body | String | 서브넷의 CIDR | | subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | @@ -253,6 +260,10 @@ GET /v4.0/network/subnets }, "subnets": [ { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example", + "usingGateway": false, "availableIpCount": 1 } ] @@ -297,6 +308,8 @@ GET /v4.0/db-versions }, "dbVersions": [ { + "dbVersion": "dbVersion-example", + "dbVersionName": "dbVersionName-example", "restorableFromObs": false } ] @@ -404,6 +417,7 @@ GET /v4.0/jobs/{jobId} "jobStatus": "DELETED", "resourceRelations": [ { + "resourceType": "resourceType-example", "resourceId": "resourceId-example" } ], @@ -451,6 +465,9 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -503,6 +520,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "replicationType": "STANDALONE", "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } ], @@ -602,6 +621,16 @@ GET /v4.0/db-instances }, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -715,6 +744,7 @@ POST /v4.0/db-instances "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -844,6 +874,7 @@ POST /v4.0/db-instances/restore-from-obs "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1141,6 +1172,7 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1184,6 +1216,7 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1253,6 +1286,8 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs }, "binLogs": [ { + "binLogFileName": "binLogFileName-example", + "binLogFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1331,6 +1366,9 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates }, "certificates": [ { + "fileName": "fileName-example", + "certificateType": "CA_FILE", + "fileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1438,6 +1476,9 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { + "dbSchemaId": "dbSchemaId-example", + "dbSchemaName": "dbSchemaName-example", + "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1580,6 +1621,14 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { + "dbUserId": "dbUserId-example", + "dbUserName": "dbUserName-example", + "host": "host-example", + "authorityType": "CUSTOM", + "dbUserStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00", + "authenticationPlugin": "NATIVE", "tlsOption": "NONE" } ] @@ -2094,6 +2143,9 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files }, "logFiles": [ { + "logFileName": "logFileName-example", + "logFileType": "ERROR", + "logFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2255,6 +2307,19 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { + "maintenanceId": "maintenanceId-example", + "dbInstanceId": "dbInstanceId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": { + }, + "required": false, + "deadlineYmdt": "2023-12-31T15:00:00+09:00", + "status": "PENDING", + "executionType": "SCHEDULED", + "addedYmdt": "2023-12-31T15:00:00+09:00", + "executionStartedYmdt": "2023-12-31T15:00:00+09:00", "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2430,6 +2495,8 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info }, "endPoints": [ { + "domain": "domain-example", + "ipAddress": "ipAddress-example", "endPointType": "endPointType-example" } ] @@ -2650,6 +2717,7 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2793,6 +2861,23 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", "restorableBackups": [ { + "backup": { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "backupType": "AUTO", + "backupSize": 1, + "useBackupLock": false, + "failoverCount": 1, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + }, "restorableBinLogs": [] } ] @@ -2959,6 +3044,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3255,6 +3341,15 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupSize": 1, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3586,6 +3681,7 @@ POST /v4.0/backups/{backupId}/restore "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3668,6 +3764,11 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3710,6 +3811,14 @@ POST /v4.0/db-security-groups "description": "description-example", "rules": [ { + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", "description": "description-example" } ] @@ -3817,6 +3926,17 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "progressStatus": "NONE", "rules": [ { + "ruleId": "ruleId-example", + "description": "description-example", + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 1, + "maxPort": 1 + }, + "cidr": "cidr-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], @@ -4074,6 +4194,13 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupType": "USER", + "parameterGroupStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4211,6 +4338,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "parameterGroupStatus": "STABLE", "parameters": [ { + "parameterId": "parameterId-example", + "parameterFileGroup": "CLIENT", + "parameterName": "parameterName-example", + "fileParameterName": "fileParameterName-example", + "value": "value-example", + "defaultValue": "defaultValue-example", + "allowedValue": "allowedValue-example", + "updateType": "VARIABLE", "applyType": "BOTH" } ], @@ -4331,6 +4466,7 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters { "modifiedParameters": [ { + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "value": "value-example" } ] @@ -4402,6 +4538,9 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4612,6 +4751,12 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4751,11 +4896,13 @@ GET /v4.0/notification-groups/{notificationGroupId} "isEnabled": false, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { + "userGroupId": "userGroupId-example", "userGroupName": "userGroupName-example" } ], @@ -4858,6 +5005,7 @@ GET /v4.0/metrics }, "metrics": [ { + "measureName": "measureName-example", "unit": "unit-example" } ] @@ -4914,6 +5062,7 @@ GET /v4.0/event-codes }, "eventCodes": [ { + "eventCode": "ENUM_VALUE", "eventCategoryType": "ALL" } ] @@ -4963,6 +5112,16 @@ GET /v4.0/events "totalCounts": 1, "events": [ { + "eventCategoryType": "ALL", + "eventCode": "ENUM_VALUE", + "sourceId": "sourceId-example", + "sourceName": "sourceName-example", + "messages": [ + { + "langCode": "KO", + "message": "message-example" + } + ], "eventYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5018,6 +5177,20 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { + "eventSubscriptionId": "eventSubscriptionId-example", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "sourceId": "sourceId-example", + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [], "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5063,6 +5236,7 @@ POST /v4.0/event-subscriptions "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5153,6 +5327,7 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5202,6 +5377,7 @@ GET /v4.0/availability-zones }, "availabilityZones": [ { + "availabilityZoneName": "availabilityZoneName-example", "zoneState": { "available": false } diff --git a/ko/api-guide-v4.0-ncgn.md b/ko/api-guide-v4.0-ncgn.md index 0e893698..c2d9e3b6 100644 --- a/ko/api-guide-v4.0-ncgn.md +++ b/ko/api-guide-v4.0-ncgn.md @@ -121,6 +121,9 @@ GET /v4.0/project/members }, "members": [ { + "memberId": "memberId-example", + "memberName": "memberName-example", + "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" } ] @@ -162,6 +165,7 @@ GET /v4.0/project/regions }, "regions": [ { + "regionCode": "KR1", "isEnabled": false } ] @@ -207,6 +211,9 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { + "dbFlavorId": "dbFlavorId-example", + "dbFlavorName": "dbFlavorName-example", + "ram": 1, "vcpus": 1 } ] @@ -235,7 +242,7 @@ GET /v4.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetId | Body | UUID | 서브넷의 식별자 | | subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnets.subnetCidr | Body | String | 서브넷의 CIDR | | subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | @@ -253,6 +260,10 @@ GET /v4.0/network/subnets }, "subnets": [ { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example", + "usingGateway": false, "availableIpCount": 1 } ] @@ -297,6 +308,8 @@ GET /v4.0/db-versions }, "dbVersions": [ { + "dbVersion": "dbVersion-example", + "dbVersionName": "dbVersionName-example", "restorableFromObs": false } ] @@ -404,6 +417,7 @@ GET /v4.0/jobs/{jobId} "jobStatus": "DELETED", "resourceRelations": [ { + "resourceType": "resourceType-example", "resourceId": "resourceId-example" } ], @@ -451,6 +465,9 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -503,6 +520,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "replicationType": "STANDALONE", "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } ], @@ -602,6 +621,16 @@ GET /v4.0/db-instances }, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -715,6 +744,7 @@ POST /v4.0/db-instances "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -844,6 +874,7 @@ POST /v4.0/db-instances/restore-from-obs "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1141,6 +1172,7 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1184,6 +1216,7 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1253,6 +1286,8 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs }, "binLogs": [ { + "binLogFileName": "binLogFileName-example", + "binLogFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1331,6 +1366,9 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates }, "certificates": [ { + "fileName": "fileName-example", + "certificateType": "CA_FILE", + "fileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1438,6 +1476,9 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { + "dbSchemaId": "dbSchemaId-example", + "dbSchemaName": "dbSchemaName-example", + "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1580,6 +1621,14 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { + "dbUserId": "dbUserId-example", + "dbUserName": "dbUserName-example", + "host": "host-example", + "authorityType": "CUSTOM", + "dbUserStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00", + "authenticationPlugin": "NATIVE", "tlsOption": "NONE" } ] @@ -2094,6 +2143,9 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files }, "logFiles": [ { + "logFileName": "logFileName-example", + "logFileType": "ERROR", + "logFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2255,6 +2307,19 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { + "maintenanceId": "maintenanceId-example", + "dbInstanceId": "dbInstanceId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": { + }, + "required": false, + "deadlineYmdt": "2023-12-31T15:00:00+09:00", + "status": "PENDING", + "executionType": "SCHEDULED", + "addedYmdt": "2023-12-31T15:00:00+09:00", + "executionStartedYmdt": "2023-12-31T15:00:00+09:00", "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2430,6 +2495,8 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info }, "endPoints": [ { + "domain": "domain-example", + "ipAddress": "ipAddress-example", "endPointType": "endPointType-example" } ] @@ -2650,6 +2717,7 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2793,6 +2861,23 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", "restorableBackups": [ { + "backup": { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "backupType": "AUTO", + "backupSize": 1, + "useBackupLock": false, + "failoverCount": 1, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + }, "restorableBinLogs": [] } ] @@ -2959,6 +3044,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3255,6 +3341,15 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupSize": 1, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3586,6 +3681,7 @@ POST /v4.0/backups/{backupId}/restore "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3668,6 +3764,11 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3710,6 +3811,14 @@ POST /v4.0/db-security-groups "description": "description-example", "rules": [ { + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", "description": "description-example" } ] @@ -3817,6 +3926,17 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "progressStatus": "NONE", "rules": [ { + "ruleId": "ruleId-example", + "description": "description-example", + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 1, + "maxPort": 1 + }, + "cidr": "cidr-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], @@ -4074,6 +4194,13 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupType": "USER", + "parameterGroupStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4211,6 +4338,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "parameterGroupStatus": "STABLE", "parameters": [ { + "parameterId": "parameterId-example", + "parameterFileGroup": "CLIENT", + "parameterName": "parameterName-example", + "fileParameterName": "fileParameterName-example", + "value": "value-example", + "defaultValue": "defaultValue-example", + "allowedValue": "allowedValue-example", + "updateType": "VARIABLE", "applyType": "BOTH" } ], @@ -4331,6 +4466,7 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters { "modifiedParameters": [ { + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "value": "value-example" } ] @@ -4402,6 +4538,9 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4612,6 +4751,12 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4751,11 +4896,13 @@ GET /v4.0/notification-groups/{notificationGroupId} "isEnabled": false, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { + "userGroupId": "userGroupId-example", "userGroupName": "userGroupName-example" } ], @@ -4858,6 +5005,7 @@ GET /v4.0/metrics }, "metrics": [ { + "measureName": "measureName-example", "unit": "unit-example" } ] @@ -4914,6 +5062,7 @@ GET /v4.0/event-codes }, "eventCodes": [ { + "eventCode": "ENUM_VALUE", "eventCategoryType": "ALL" } ] @@ -4963,6 +5112,16 @@ GET /v4.0/events "totalCounts": 1, "events": [ { + "eventCategoryType": "ALL", + "eventCode": "ENUM_VALUE", + "sourceId": "sourceId-example", + "sourceName": "sourceName-example", + "messages": [ + { + "langCode": "KO", + "message": "message-example" + } + ], "eventYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5018,6 +5177,20 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { + "eventSubscriptionId": "eventSubscriptionId-example", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "sourceId": "sourceId-example", + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [], "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5063,6 +5236,7 @@ POST /v4.0/event-subscriptions "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5153,6 +5327,7 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5202,6 +5377,7 @@ GET /v4.0/availability-zones }, "availabilityZones": [ { + "availabilityZoneName": "availabilityZoneName-example", "zoneState": { "available": false } diff --git a/ko/api-guide-v4.0-ngoic.md b/ko/api-guide-v4.0-ngoic.md index 19050783..930103f0 100644 --- a/ko/api-guide-v4.0-ngoic.md +++ b/ko/api-guide-v4.0-ngoic.md @@ -121,6 +121,9 @@ GET /v4.0/project/members }, "members": [ { + "memberId": "memberId-example", + "memberName": "memberName-example", + "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" } ] @@ -162,6 +165,7 @@ GET /v4.0/project/regions }, "regions": [ { + "regionCode": "KR4", "isEnabled": false } ] @@ -207,6 +211,9 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { + "dbFlavorId": "dbFlavorId-example", + "dbFlavorName": "dbFlavorName-example", + "ram": 1, "vcpus": 1 } ] @@ -235,7 +242,7 @@ GET /v4.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetId | Body | UUID | 서브넷의 식별자 | | subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnets.subnetCidr | Body | String | 서브넷의 CIDR | | subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | @@ -253,6 +260,10 @@ GET /v4.0/network/subnets }, "subnets": [ { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example", + "usingGateway": false, "availableIpCount": 1 } ] @@ -297,6 +308,8 @@ GET /v4.0/db-versions }, "dbVersions": [ { + "dbVersion": "dbVersion-example", + "dbVersionName": "dbVersionName-example", "restorableFromObs": false } ] @@ -404,6 +417,7 @@ GET /v4.0/jobs/{jobId} "jobStatus": "DELETED", "resourceRelations": [ { + "resourceType": "resourceType-example", "resourceId": "resourceId-example" } ], @@ -451,6 +465,9 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -503,6 +520,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "replicationType": "STANDALONE", "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } ], @@ -602,6 +621,16 @@ GET /v4.0/db-instances }, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -715,6 +744,7 @@ POST /v4.0/db-instances "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -844,6 +874,7 @@ POST /v4.0/db-instances/restore-from-obs "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1141,6 +1172,7 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1184,6 +1216,7 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1253,6 +1286,8 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs }, "binLogs": [ { + "binLogFileName": "binLogFileName-example", + "binLogFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1331,6 +1366,9 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates }, "certificates": [ { + "fileName": "fileName-example", + "certificateType": "CA_FILE", + "fileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1438,6 +1476,9 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { + "dbSchemaId": "dbSchemaId-example", + "dbSchemaName": "dbSchemaName-example", + "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1580,6 +1621,14 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { + "dbUserId": "dbUserId-example", + "dbUserName": "dbUserName-example", + "host": "host-example", + "authorityType": "CUSTOM", + "dbUserStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00", + "authenticationPlugin": "NATIVE", "tlsOption": "NONE" } ] @@ -2094,6 +2143,9 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files }, "logFiles": [ { + "logFileName": "logFileName-example", + "logFileType": "ERROR", + "logFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2255,6 +2307,19 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { + "maintenanceId": "maintenanceId-example", + "dbInstanceId": "dbInstanceId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": { + }, + "required": false, + "deadlineYmdt": "2023-12-31T15:00:00+09:00", + "status": "PENDING", + "executionType": "SCHEDULED", + "addedYmdt": "2023-12-31T15:00:00+09:00", + "executionStartedYmdt": "2023-12-31T15:00:00+09:00", "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2430,6 +2495,8 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info }, "endPoints": [ { + "domain": "domain-example", + "ipAddress": "ipAddress-example", "endPointType": "endPointType-example" } ] @@ -2650,6 +2717,7 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2793,6 +2861,23 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", "restorableBackups": [ { + "backup": { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "backupType": "AUTO", + "backupSize": 1, + "useBackupLock": false, + "failoverCount": 1, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + }, "restorableBinLogs": [] } ] @@ -2959,6 +3044,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3255,6 +3341,15 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupSize": 1, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3586,6 +3681,7 @@ POST /v4.0/backups/{backupId}/restore "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3668,6 +3764,11 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3710,6 +3811,14 @@ POST /v4.0/db-security-groups "description": "description-example", "rules": [ { + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", "description": "description-example" } ] @@ -3817,6 +3926,17 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "progressStatus": "NONE", "rules": [ { + "ruleId": "ruleId-example", + "description": "description-example", + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 1, + "maxPort": 1 + }, + "cidr": "cidr-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], @@ -4074,6 +4194,13 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupType": "USER", + "parameterGroupStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4211,6 +4338,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "parameterGroupStatus": "STABLE", "parameters": [ { + "parameterId": "parameterId-example", + "parameterFileGroup": "CLIENT", + "parameterName": "parameterName-example", + "fileParameterName": "fileParameterName-example", + "value": "value-example", + "defaultValue": "defaultValue-example", + "allowedValue": "allowedValue-example", + "updateType": "VARIABLE", "applyType": "BOTH" } ], @@ -4331,6 +4466,7 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters { "modifiedParameters": [ { + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "value": "value-example" } ] @@ -4402,6 +4538,9 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4612,6 +4751,12 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4751,11 +4896,13 @@ GET /v4.0/notification-groups/{notificationGroupId} "isEnabled": false, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { + "userGroupId": "userGroupId-example", "userGroupName": "userGroupName-example" } ], @@ -4858,6 +5005,7 @@ GET /v4.0/metrics }, "metrics": [ { + "measureName": "measureName-example", "unit": "unit-example" } ] @@ -4914,6 +5062,7 @@ GET /v4.0/event-codes }, "eventCodes": [ { + "eventCode": "ENUM_VALUE", "eventCategoryType": "ALL" } ] @@ -4963,6 +5112,16 @@ GET /v4.0/events "totalCounts": 1, "events": [ { + "eventCategoryType": "ALL", + "eventCode": "ENUM_VALUE", + "sourceId": "sourceId-example", + "sourceName": "sourceName-example", + "messages": [ + { + "langCode": "KO", + "message": "message-example" + } + ], "eventYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5018,6 +5177,20 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { + "eventSubscriptionId": "eventSubscriptionId-example", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "sourceId": "sourceId-example", + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [], "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5063,6 +5236,7 @@ POST /v4.0/event-subscriptions "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5153,6 +5327,7 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5202,6 +5377,7 @@ GET /v4.0/availability-zones }, "availabilityZones": [ { + "availabilityZoneName": "availabilityZoneName-example", "zoneState": { "available": false } diff --git a/ko/api-guide-v4.0-ngovc.md b/ko/api-guide-v4.0-ngovc.md index c3a534ca..7f3ca89f 100644 --- a/ko/api-guide-v4.0-ngovc.md +++ b/ko/api-guide-v4.0-ngovc.md @@ -121,6 +121,9 @@ GET /v4.0/project/members }, "members": [ { + "memberId": "memberId-example", + "memberName": "memberName-example", + "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" } ] @@ -162,6 +165,7 @@ GET /v4.0/project/regions }, "regions": [ { + "regionCode": "KR4", "isEnabled": false } ] @@ -207,6 +211,9 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { + "dbFlavorId": "dbFlavorId-example", + "dbFlavorName": "dbFlavorName-example", + "ram": 1, "vcpus": 1 } ] @@ -235,7 +242,7 @@ GET /v4.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetId | Body | UUID | 서브넷의 식별자 | | subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnets.subnetCidr | Body | String | 서브넷의 CIDR | | subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | @@ -253,6 +260,10 @@ GET /v4.0/network/subnets }, "subnets": [ { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example", + "usingGateway": false, "availableIpCount": 1 } ] @@ -297,6 +308,8 @@ GET /v4.0/db-versions }, "dbVersions": [ { + "dbVersion": "dbVersion-example", + "dbVersionName": "dbVersionName-example", "restorableFromObs": false } ] @@ -404,6 +417,7 @@ GET /v4.0/jobs/{jobId} "jobStatus": "DELETED", "resourceRelations": [ { + "resourceType": "resourceType-example", "resourceId": "resourceId-example" } ], @@ -451,6 +465,9 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -503,6 +520,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "replicationType": "STANDALONE", "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } ], @@ -602,6 +621,16 @@ GET /v4.0/db-instances }, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -715,6 +744,7 @@ POST /v4.0/db-instances "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -844,6 +874,7 @@ POST /v4.0/db-instances/restore-from-obs "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1141,6 +1172,7 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1184,6 +1216,7 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1253,6 +1286,8 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs }, "binLogs": [ { + "binLogFileName": "binLogFileName-example", + "binLogFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1331,6 +1366,9 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates }, "certificates": [ { + "fileName": "fileName-example", + "certificateType": "CA_FILE", + "fileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1438,6 +1476,9 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { + "dbSchemaId": "dbSchemaId-example", + "dbSchemaName": "dbSchemaName-example", + "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1580,6 +1621,14 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { + "dbUserId": "dbUserId-example", + "dbUserName": "dbUserName-example", + "host": "host-example", + "authorityType": "CUSTOM", + "dbUserStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00", + "authenticationPlugin": "NATIVE", "tlsOption": "NONE" } ] @@ -2094,6 +2143,9 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files }, "logFiles": [ { + "logFileName": "logFileName-example", + "logFileType": "ERROR", + "logFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2255,6 +2307,19 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { + "maintenanceId": "maintenanceId-example", + "dbInstanceId": "dbInstanceId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": { + }, + "required": false, + "deadlineYmdt": "2023-12-31T15:00:00+09:00", + "status": "PENDING", + "executionType": "SCHEDULED", + "addedYmdt": "2023-12-31T15:00:00+09:00", + "executionStartedYmdt": "2023-12-31T15:00:00+09:00", "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2430,6 +2495,8 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info }, "endPoints": [ { + "domain": "domain-example", + "ipAddress": "ipAddress-example", "endPointType": "endPointType-example" } ] @@ -2650,6 +2717,7 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2793,6 +2861,23 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", "restorableBackups": [ { + "backup": { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "backupType": "AUTO", + "backupSize": 1, + "useBackupLock": false, + "failoverCount": 1, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + }, "restorableBinLogs": [] } ] @@ -2959,6 +3044,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3255,6 +3341,15 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupSize": 1, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3586,6 +3681,7 @@ POST /v4.0/backups/{backupId}/restore "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3668,6 +3764,11 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3710,6 +3811,14 @@ POST /v4.0/db-security-groups "description": "description-example", "rules": [ { + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", "description": "description-example" } ] @@ -3817,6 +3926,17 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "progressStatus": "NONE", "rules": [ { + "ruleId": "ruleId-example", + "description": "description-example", + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 1, + "maxPort": 1 + }, + "cidr": "cidr-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], @@ -4074,6 +4194,13 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupType": "USER", + "parameterGroupStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4211,6 +4338,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "parameterGroupStatus": "STABLE", "parameters": [ { + "parameterId": "parameterId-example", + "parameterFileGroup": "CLIENT", + "parameterName": "parameterName-example", + "fileParameterName": "fileParameterName-example", + "value": "value-example", + "defaultValue": "defaultValue-example", + "allowedValue": "allowedValue-example", + "updateType": "VARIABLE", "applyType": "BOTH" } ], @@ -4331,6 +4466,7 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters { "modifiedParameters": [ { + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "value": "value-example" } ] @@ -4402,6 +4538,9 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4612,6 +4751,12 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4751,11 +4896,13 @@ GET /v4.0/notification-groups/{notificationGroupId} "isEnabled": false, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { + "userGroupId": "userGroupId-example", "userGroupName": "userGroupName-example" } ], @@ -4858,6 +5005,7 @@ GET /v4.0/metrics }, "metrics": [ { + "measureName": "measureName-example", "unit": "unit-example" } ] @@ -4914,6 +5062,7 @@ GET /v4.0/event-codes }, "eventCodes": [ { + "eventCode": "ENUM_VALUE", "eventCategoryType": "ALL" } ] @@ -4963,6 +5112,16 @@ GET /v4.0/events "totalCounts": 1, "events": [ { + "eventCategoryType": "ALL", + "eventCode": "ENUM_VALUE", + "sourceId": "sourceId-example", + "sourceName": "sourceName-example", + "messages": [ + { + "langCode": "KO", + "message": "message-example" + } + ], "eventYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5018,6 +5177,20 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { + "eventSubscriptionId": "eventSubscriptionId-example", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "sourceId": "sourceId-example", + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [], "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5063,6 +5236,7 @@ POST /v4.0/event-subscriptions "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5153,6 +5327,7 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5202,6 +5377,7 @@ GET /v4.0/availability-zones }, "availabilityZones": [ { + "availabilityZoneName": "availabilityZoneName-example", "zoneState": { "available": false } diff --git a/ko/api-guide-v4.0-ngsc.md b/ko/api-guide-v4.0-ngsc.md index 8a7c9c40..e3f4f169 100644 --- a/ko/api-guide-v4.0-ngsc.md +++ b/ko/api-guide-v4.0-ngsc.md @@ -121,6 +121,9 @@ GET /v4.0/project/members }, "members": [ { + "memberId": "memberId-example", + "memberName": "memberName-example", + "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" } ] @@ -162,6 +165,7 @@ GET /v4.0/project/regions }, "regions": [ { + "regionCode": "KR4", "isEnabled": false } ] @@ -207,6 +211,9 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { + "dbFlavorId": "dbFlavorId-example", + "dbFlavorName": "dbFlavorName-example", + "ram": 1, "vcpus": 1 } ] @@ -235,7 +242,7 @@ GET /v4.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetId | Body | UUID | 서브넷의 식별자 | | subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnets.subnetCidr | Body | String | 서브넷의 CIDR | | subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | @@ -253,6 +260,10 @@ GET /v4.0/network/subnets }, "subnets": [ { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example", + "usingGateway": false, "availableIpCount": 1 } ] @@ -297,6 +308,8 @@ GET /v4.0/db-versions }, "dbVersions": [ { + "dbVersion": "dbVersion-example", + "dbVersionName": "dbVersionName-example", "restorableFromObs": false } ] @@ -404,6 +417,7 @@ GET /v4.0/jobs/{jobId} "jobStatus": "DELETED", "resourceRelations": [ { + "resourceType": "resourceType-example", "resourceId": "resourceId-example" } ], @@ -451,6 +465,9 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -503,6 +520,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "replicationType": "STANDALONE", "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } ], @@ -602,6 +621,16 @@ GET /v4.0/db-instances }, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -715,6 +744,7 @@ POST /v4.0/db-instances "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -844,6 +874,7 @@ POST /v4.0/db-instances/restore-from-obs "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1141,6 +1172,7 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1184,6 +1216,7 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1253,6 +1286,8 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs }, "binLogs": [ { + "binLogFileName": "binLogFileName-example", + "binLogFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1331,6 +1366,9 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates }, "certificates": [ { + "fileName": "fileName-example", + "certificateType": "CA_FILE", + "fileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1438,6 +1476,9 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { + "dbSchemaId": "dbSchemaId-example", + "dbSchemaName": "dbSchemaName-example", + "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1580,6 +1621,14 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { + "dbUserId": "dbUserId-example", + "dbUserName": "dbUserName-example", + "host": "host-example", + "authorityType": "CUSTOM", + "dbUserStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00", + "authenticationPlugin": "NATIVE", "tlsOption": "NONE" } ] @@ -2094,6 +2143,9 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files }, "logFiles": [ { + "logFileName": "logFileName-example", + "logFileType": "ERROR", + "logFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2255,6 +2307,19 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { + "maintenanceId": "maintenanceId-example", + "dbInstanceId": "dbInstanceId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": { + }, + "required": false, + "deadlineYmdt": "2023-12-31T15:00:00+09:00", + "status": "PENDING", + "executionType": "SCHEDULED", + "addedYmdt": "2023-12-31T15:00:00+09:00", + "executionStartedYmdt": "2023-12-31T15:00:00+09:00", "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2430,6 +2495,8 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info }, "endPoints": [ { + "domain": "domain-example", + "ipAddress": "ipAddress-example", "endPointType": "endPointType-example" } ] @@ -2650,6 +2717,7 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2793,6 +2861,23 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", "restorableBackups": [ { + "backup": { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "backupType": "AUTO", + "backupSize": 1, + "useBackupLock": false, + "failoverCount": 1, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + }, "restorableBinLogs": [] } ] @@ -2959,6 +3044,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3255,6 +3341,15 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupSize": 1, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3586,6 +3681,7 @@ POST /v4.0/backups/{backupId}/restore "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3668,6 +3764,11 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3710,6 +3811,14 @@ POST /v4.0/db-security-groups "description": "description-example", "rules": [ { + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", "description": "description-example" } ] @@ -3817,6 +3926,17 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "progressStatus": "NONE", "rules": [ { + "ruleId": "ruleId-example", + "description": "description-example", + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 1, + "maxPort": 1 + }, + "cidr": "cidr-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], @@ -4074,6 +4194,13 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupType": "USER", + "parameterGroupStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4211,6 +4338,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "parameterGroupStatus": "STABLE", "parameters": [ { + "parameterId": "parameterId-example", + "parameterFileGroup": "CLIENT", + "parameterName": "parameterName-example", + "fileParameterName": "fileParameterName-example", + "value": "value-example", + "defaultValue": "defaultValue-example", + "allowedValue": "allowedValue-example", + "updateType": "VARIABLE", "applyType": "BOTH" } ], @@ -4331,6 +4466,7 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters { "modifiedParameters": [ { + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "value": "value-example" } ] @@ -4402,6 +4538,9 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4612,6 +4751,12 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4751,11 +4896,13 @@ GET /v4.0/notification-groups/{notificationGroupId} "isEnabled": false, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { + "userGroupId": "userGroupId-example", "userGroupName": "userGroupName-example" } ], @@ -4858,6 +5005,7 @@ GET /v4.0/metrics }, "metrics": [ { + "measureName": "measureName-example", "unit": "unit-example" } ] @@ -4914,6 +5062,7 @@ GET /v4.0/event-codes }, "eventCodes": [ { + "eventCode": "ENUM_VALUE", "eventCategoryType": "ALL" } ] @@ -4963,6 +5112,16 @@ GET /v4.0/events "totalCounts": 1, "events": [ { + "eventCategoryType": "ALL", + "eventCode": "ENUM_VALUE", + "sourceId": "sourceId-example", + "sourceName": "sourceName-example", + "messages": [ + { + "langCode": "KO", + "message": "message-example" + } + ], "eventYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5018,6 +5177,20 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { + "eventSubscriptionId": "eventSubscriptionId-example", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "sourceId": "sourceId-example", + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [], "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5063,6 +5236,7 @@ POST /v4.0/event-subscriptions "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5153,6 +5327,7 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5202,6 +5377,7 @@ GET /v4.0/availability-zones }, "availabilityZones": [ { + "availabilityZoneName": "availabilityZoneName-example", "zoneState": { "available": false } diff --git a/ko/api-guide-v4.0-ninc.md b/ko/api-guide-v4.0-ninc.md index 2e102a5a..ded307af 100644 --- a/ko/api-guide-v4.0-ninc.md +++ b/ko/api-guide-v4.0-ninc.md @@ -121,6 +121,9 @@ GET /v4.0/project/members }, "members": [ { + "memberId": "memberId-example", + "memberName": "memberName-example", + "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" } ] @@ -162,6 +165,7 @@ GET /v4.0/project/regions }, "regions": [ { + "regionCode": "KR4", "isEnabled": false } ] @@ -207,6 +211,9 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { + "dbFlavorId": "dbFlavorId-example", + "dbFlavorName": "dbFlavorName-example", + "ram": 1, "vcpus": 1 } ] @@ -235,7 +242,7 @@ GET /v4.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetId | Body | UUID | 서브넷의 식별자 | | subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnets.subnetCidr | Body | String | 서브넷의 CIDR | | subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | @@ -253,6 +260,10 @@ GET /v4.0/network/subnets }, "subnets": [ { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example", + "usingGateway": false, "availableIpCount": 1 } ] @@ -297,6 +308,8 @@ GET /v4.0/db-versions }, "dbVersions": [ { + "dbVersion": "dbVersion-example", + "dbVersionName": "dbVersionName-example", "restorableFromObs": false } ] @@ -404,6 +417,7 @@ GET /v4.0/jobs/{jobId} "jobStatus": "DELETED", "resourceRelations": [ { + "resourceType": "resourceType-example", "resourceId": "resourceId-example" } ], @@ -451,6 +465,9 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -503,6 +520,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "replicationType": "STANDALONE", "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } ], @@ -602,6 +621,16 @@ GET /v4.0/db-instances }, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -715,6 +744,7 @@ POST /v4.0/db-instances "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -844,6 +874,7 @@ POST /v4.0/db-instances/restore-from-obs "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1141,6 +1172,7 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1184,6 +1216,7 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1253,6 +1286,8 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs }, "binLogs": [ { + "binLogFileName": "binLogFileName-example", + "binLogFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1331,6 +1366,9 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates }, "certificates": [ { + "fileName": "fileName-example", + "certificateType": "CA_FILE", + "fileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1438,6 +1476,9 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { + "dbSchemaId": "dbSchemaId-example", + "dbSchemaName": "dbSchemaName-example", + "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1580,6 +1621,14 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { + "dbUserId": "dbUserId-example", + "dbUserName": "dbUserName-example", + "host": "host-example", + "authorityType": "CUSTOM", + "dbUserStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00", + "authenticationPlugin": "NATIVE", "tlsOption": "NONE" } ] @@ -2094,6 +2143,9 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files }, "logFiles": [ { + "logFileName": "logFileName-example", + "logFileType": "ERROR", + "logFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2255,6 +2307,19 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { + "maintenanceId": "maintenanceId-example", + "dbInstanceId": "dbInstanceId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": { + }, + "required": false, + "deadlineYmdt": "2023-12-31T15:00:00+09:00", + "status": "PENDING", + "executionType": "SCHEDULED", + "addedYmdt": "2023-12-31T15:00:00+09:00", + "executionStartedYmdt": "2023-12-31T15:00:00+09:00", "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2430,6 +2495,8 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info }, "endPoints": [ { + "domain": "domain-example", + "ipAddress": "ipAddress-example", "endPointType": "endPointType-example" } ] @@ -2650,6 +2717,7 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2793,6 +2861,23 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", "restorableBackups": [ { + "backup": { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "backupType": "AUTO", + "backupSize": 1, + "useBackupLock": false, + "failoverCount": 1, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + }, "restorableBinLogs": [] } ] @@ -2959,6 +3044,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3255,6 +3341,15 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupSize": 1, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3586,6 +3681,7 @@ POST /v4.0/backups/{backupId}/restore "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3668,6 +3764,11 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3710,6 +3811,14 @@ POST /v4.0/db-security-groups "description": "description-example", "rules": [ { + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", "description": "description-example" } ] @@ -3817,6 +3926,17 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "progressStatus": "NONE", "rules": [ { + "ruleId": "ruleId-example", + "description": "description-example", + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 1, + "maxPort": 1 + }, + "cidr": "cidr-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], @@ -4074,6 +4194,13 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupType": "USER", + "parameterGroupStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4211,6 +4338,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "parameterGroupStatus": "STABLE", "parameters": [ { + "parameterId": "parameterId-example", + "parameterFileGroup": "CLIENT", + "parameterName": "parameterName-example", + "fileParameterName": "fileParameterName-example", + "value": "value-example", + "defaultValue": "defaultValue-example", + "allowedValue": "allowedValue-example", + "updateType": "VARIABLE", "applyType": "BOTH" } ], @@ -4331,6 +4466,7 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters { "modifiedParameters": [ { + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "value": "value-example" } ] @@ -4402,6 +4538,9 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4612,6 +4751,12 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4751,11 +4896,13 @@ GET /v4.0/notification-groups/{notificationGroupId} "isEnabled": false, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { + "userGroupId": "userGroupId-example", "userGroupName": "userGroupName-example" } ], @@ -4858,6 +5005,7 @@ GET /v4.0/metrics }, "metrics": [ { + "measureName": "measureName-example", "unit": "unit-example" } ] @@ -4914,6 +5062,7 @@ GET /v4.0/event-codes }, "eventCodes": [ { + "eventCode": "ENUM_VALUE", "eventCategoryType": "ALL" } ] @@ -4963,6 +5112,16 @@ GET /v4.0/events "totalCounts": 1, "events": [ { + "eventCategoryType": "ALL", + "eventCode": "ENUM_VALUE", + "sourceId": "sourceId-example", + "sourceName": "sourceName-example", + "messages": [ + { + "langCode": "KO", + "message": "message-example" + } + ], "eventYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5018,6 +5177,20 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { + "eventSubscriptionId": "eventSubscriptionId-example", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "sourceId": "sourceId-example", + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [], "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5063,6 +5236,7 @@ POST /v4.0/event-subscriptions "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5153,6 +5327,7 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5202,6 +5377,7 @@ GET /v4.0/availability-zones }, "availabilityZones": [ { + "availabilityZoneName": "availabilityZoneName-example", "zoneState": { "available": false } diff --git a/ko/api-guide-v4.0.md b/ko/api-guide-v4.0.md index 7da88888..4500ec82 100644 --- a/ko/api-guide-v4.0.md +++ b/ko/api-guide-v4.0.md @@ -123,6 +123,9 @@ GET /v4.0/project/members }, "members": [ { + "memberId": "memberId-example", + "memberName": "memberName-example", + "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" } ] @@ -164,6 +167,7 @@ GET /v4.0/project/regions }, "regions": [ { + "regionCode": "KR1", "isEnabled": false } ] @@ -209,6 +213,9 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { + "dbFlavorId": "dbFlavorId-example", + "dbFlavorName": "dbFlavorName-example", + "ram": 1, "vcpus": 1 } ] @@ -237,7 +244,7 @@ GET /v4.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetId | Body | UUID | 서브넷의 식별자 | | subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnets.subnetCidr | Body | String | 서브넷의 CIDR | | subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | @@ -255,6 +262,10 @@ GET /v4.0/network/subnets }, "subnets": [ { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example", + "usingGateway": false, "availableIpCount": 1 } ] @@ -299,6 +310,8 @@ GET /v4.0/db-versions }, "dbVersions": [ { + "dbVersion": "dbVersion-example", + "dbVersionName": "dbVersionName-example", "restorableFromObs": false } ] @@ -406,6 +419,7 @@ GET /v4.0/jobs/{jobId} "jobStatus": "DELETED", "resourceRelations": [ { + "resourceType": "resourceType-example", "resourceId": "resourceId-example" } ], @@ -453,6 +467,9 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -505,6 +522,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "replicationType": "STANDALONE", "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } ], @@ -604,6 +623,16 @@ GET /v4.0/db-instances }, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -717,6 +746,7 @@ POST /v4.0/db-instances "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -846,6 +876,7 @@ POST /v4.0/db-instances/restore-from-obs "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1143,6 +1174,7 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1186,6 +1218,7 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1255,6 +1288,8 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs }, "binLogs": [ { + "binLogFileName": "binLogFileName-example", + "binLogFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1333,6 +1368,9 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates }, "certificates": [ { + "fileName": "fileName-example", + "certificateType": "CA_FILE", + "fileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1440,6 +1478,9 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { + "dbSchemaId": "dbSchemaId-example", + "dbSchemaName": "dbSchemaName-example", + "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1582,6 +1623,14 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { + "dbUserId": "dbUserId-example", + "dbUserName": "dbUserName-example", + "host": "host-example", + "authorityType": "CUSTOM", + "dbUserStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00", + "authenticationPlugin": "NATIVE", "tlsOption": "NONE" } ] @@ -2096,6 +2145,9 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files }, "logFiles": [ { + "logFileName": "logFileName-example", + "logFileType": "ERROR", + "logFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2257,6 +2309,19 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { + "maintenanceId": "maintenanceId-example", + "dbInstanceId": "dbInstanceId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": { + }, + "required": false, + "deadlineYmdt": "2023-12-31T15:00:00+09:00", + "status": "PENDING", + "executionType": "SCHEDULED", + "addedYmdt": "2023-12-31T15:00:00+09:00", + "executionStartedYmdt": "2023-12-31T15:00:00+09:00", "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2432,6 +2497,8 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info }, "endPoints": [ { + "domain": "domain-example", + "ipAddress": "ipAddress-example", "endPointType": "endPointType-example" } ] @@ -2652,6 +2719,7 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2795,6 +2863,23 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", "restorableBackups": [ { + "backup": { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "backupType": "AUTO", + "backupSize": 1, + "useBackupLock": false, + "failoverCount": 1, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + }, "restorableBinLogs": [] } ] @@ -2961,6 +3046,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3257,6 +3343,15 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupSize": 1, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3588,6 +3683,7 @@ POST /v4.0/backups/{backupId}/restore "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3670,6 +3766,11 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3712,6 +3813,14 @@ POST /v4.0/db-security-groups "description": "description-example", "rules": [ { + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", "description": "description-example" } ] @@ -3819,6 +3928,17 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "progressStatus": "NONE", "rules": [ { + "ruleId": "ruleId-example", + "description": "description-example", + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 1, + "maxPort": 1 + }, + "cidr": "cidr-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], @@ -4076,6 +4196,13 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupType": "USER", + "parameterGroupStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4213,6 +4340,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "parameterGroupStatus": "STABLE", "parameters": [ { + "parameterId": "parameterId-example", + "parameterFileGroup": "CLIENT", + "parameterName": "parameterName-example", + "fileParameterName": "fileParameterName-example", + "value": "value-example", + "defaultValue": "defaultValue-example", + "allowedValue": "allowedValue-example", + "updateType": "VARIABLE", "applyType": "BOTH" } ], @@ -4333,6 +4468,7 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters { "modifiedParameters": [ { + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "value": "value-example" } ] @@ -4404,6 +4540,9 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4614,6 +4753,12 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4753,11 +4898,13 @@ GET /v4.0/notification-groups/{notificationGroupId} "isEnabled": false, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { + "userGroupId": "userGroupId-example", "userGroupName": "userGroupName-example" } ], @@ -4860,6 +5007,7 @@ GET /v4.0/metrics }, "metrics": [ { + "measureName": "measureName-example", "unit": "unit-example" } ] @@ -4916,6 +5064,7 @@ GET /v4.0/event-codes }, "eventCodes": [ { + "eventCode": "ENUM_VALUE", "eventCategoryType": "ALL" } ] @@ -4965,6 +5114,16 @@ GET /v4.0/events "totalCounts": 1, "events": [ { + "eventCategoryType": "ALL", + "eventCode": "ENUM_VALUE", + "sourceId": "sourceId-example", + "sourceName": "sourceName-example", + "messages": [ + { + "langCode": "KO", + "message": "message-example" + } + ], "eventYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5020,6 +5179,20 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { + "eventSubscriptionId": "eventSubscriptionId-example", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "sourceId": "sourceId-example", + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [], "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5065,6 +5238,7 @@ POST /v4.0/event-subscriptions "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5155,6 +5329,7 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5204,6 +5379,7 @@ GET /v4.0/availability-zones }, "availabilityZones": [ { + "availabilityZoneName": "availabilityZoneName-example", "zoneState": { "available": false } diff --git a/mariadb/ko/api-guide-v4.0-gov.md b/mariadb/ko/api-guide-v4.0-gov.md index 01609a18..9cea85f4 100644 --- a/mariadb/ko/api-guide-v4.0-gov.md +++ b/mariadb/ko/api-guide-v4.0-gov.md @@ -109,6 +109,9 @@ GET /v4.0/project/members }, "members": [ { + "memberId": "memberId-example", + "memberName": "memberName-example", + "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" } ] @@ -150,6 +153,7 @@ GET /v4.0/project/regions }, "regions": [ { + "regionCode": "KR1", "isEnabled": false } ] @@ -195,6 +199,9 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { + "dbFlavorId": "dbFlavorId-example", + "dbFlavorName": "dbFlavorName-example", + "ram": 1, "vcpus": 1 } ] @@ -223,7 +230,7 @@ GET /v4.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetId | Body | UUID | 서브넷의 식별자 | | subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnets.subnetCidr | Body | String | 서브넷의 CIDR | | subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | @@ -241,6 +248,10 @@ GET /v4.0/network/subnets }, "subnets": [ { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example", + "usingGateway": false, "availableIpCount": 1 } ] @@ -285,6 +296,8 @@ GET /v4.0/db-versions }, "dbVersions": [ { + "dbVersion": "dbVersion-example", + "dbVersionName": "dbVersionName-example", "restorableFromObs": false } ] @@ -392,6 +405,7 @@ GET /v4.0/jobs/{jobId} "jobStatus": "DELETED", "resourceRelations": [ { + "resourceType": "resourceType-example", "resourceId": "resourceId-example" } ], @@ -439,6 +453,9 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -491,6 +508,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "replicationType": "STANDALONE", "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } ], @@ -590,6 +609,16 @@ GET /v4.0/db-instances }, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -703,6 +732,7 @@ POST /v4.0/db-instances "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -832,6 +862,7 @@ POST /v4.0/db-instances/restore-from-obs "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1129,6 +1160,7 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1172,6 +1204,7 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1241,6 +1274,8 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs }, "binLogs": [ { + "binLogFileName": "binLogFileName-example", + "binLogFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1319,6 +1354,9 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates }, "certificates": [ { + "fileName": "fileName-example", + "certificateType": "CA_FILE", + "fileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1426,6 +1464,9 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { + "dbSchemaId": "dbSchemaId-example", + "dbSchemaName": "dbSchemaName-example", + "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1568,6 +1609,14 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { + "dbUserId": "dbUserId-example", + "dbUserName": "dbUserName-example", + "host": "host-example", + "authorityType": "CUSTOM", + "dbUserStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00", + "authenticationPlugin": "NATIVE", "tlsOption": "NONE" } ] @@ -2082,6 +2131,9 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files }, "logFiles": [ { + "logFileName": "logFileName-example", + "logFileType": "ERROR", + "logFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2243,6 +2295,19 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { + "maintenanceId": "maintenanceId-example", + "dbInstanceId": "dbInstanceId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": { + }, + "required": false, + "deadlineYmdt": "2023-12-31T15:00:00+09:00", + "status": "PENDING", + "executionType": "SCHEDULED", + "addedYmdt": "2023-12-31T15:00:00+09:00", + "executionStartedYmdt": "2023-12-31T15:00:00+09:00", "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2418,6 +2483,8 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info }, "endPoints": [ { + "domain": "domain-example", + "ipAddress": "ipAddress-example", "endPointType": "endPointType-example" } ] @@ -2638,6 +2705,7 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2781,6 +2849,23 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", "restorableBackups": [ { + "backup": { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "backupType": "AUTO", + "backupSize": 1, + "useBackupLock": false, + "failoverCount": 1, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + }, "restorableBinLogs": [] } ] @@ -2947,6 +3032,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3243,6 +3329,15 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupSize": 1, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3574,6 +3669,7 @@ POST /v4.0/backups/{backupId}/restore "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3656,6 +3752,11 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3698,6 +3799,14 @@ POST /v4.0/db-security-groups "description": "description-example", "rules": [ { + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", "description": "description-example" } ] @@ -3805,6 +3914,17 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "progressStatus": "NONE", "rules": [ { + "ruleId": "ruleId-example", + "description": "description-example", + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 1, + "maxPort": 1 + }, + "cidr": "cidr-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], @@ -4062,6 +4182,13 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupType": "USER", + "parameterGroupStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4199,6 +4326,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "parameterGroupStatus": "STABLE", "parameters": [ { + "parameterId": "parameterId-example", + "parameterFileGroup": "CLIENT", + "parameterName": "parameterName-example", + "fileParameterName": "fileParameterName-example", + "value": "value-example", + "defaultValue": "defaultValue-example", + "allowedValue": "allowedValue-example", + "updateType": "VARIABLE", "applyType": "BOTH" } ], @@ -4319,6 +4454,7 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters { "modifiedParameters": [ { + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "value": "value-example" } ] @@ -4390,6 +4526,9 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4600,6 +4739,12 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4739,11 +4884,13 @@ GET /v4.0/notification-groups/{notificationGroupId} "isEnabled": false, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { + "userGroupId": "userGroupId-example", "userGroupName": "userGroupName-example" } ], @@ -4846,6 +4993,7 @@ GET /v4.0/metrics }, "metrics": [ { + "measureName": "measureName-example", "unit": "unit-example" } ] @@ -4902,6 +5050,7 @@ GET /v4.0/event-codes }, "eventCodes": [ { + "eventCode": "ENUM_VALUE", "eventCategoryType": "ALL" } ] @@ -4951,6 +5100,16 @@ GET /v4.0/events "totalCounts": 1, "events": [ { + "eventCategoryType": "ALL", + "eventCode": "ENUM_VALUE", + "sourceId": "sourceId-example", + "sourceName": "sourceName-example", + "messages": [ + { + "langCode": "KO", + "message": "message-example" + } + ], "eventYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5006,6 +5165,20 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { + "eventSubscriptionId": "eventSubscriptionId-example", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "sourceId": "sourceId-example", + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [], "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5051,6 +5224,7 @@ POST /v4.0/event-subscriptions "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5141,6 +5315,7 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5190,6 +5365,7 @@ GET /v4.0/availability-zones }, "availabilityZones": [ { + "availabilityZoneName": "availabilityZoneName-example", "zoneState": { "available": false } diff --git a/mariadb/ko/api-guide-v4.0.md b/mariadb/ko/api-guide-v4.0.md index aa0b28cb..ca8edbcb 100644 --- a/mariadb/ko/api-guide-v4.0.md +++ b/mariadb/ko/api-guide-v4.0.md @@ -109,6 +109,9 @@ GET /v4.0/project/members }, "members": [ { + "memberId": "memberId-example", + "memberName": "memberName-example", + "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" } ] @@ -150,6 +153,7 @@ GET /v4.0/project/regions }, "regions": [ { + "regionCode": "KR1", "isEnabled": false } ] @@ -195,6 +199,9 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { + "dbFlavorId": "dbFlavorId-example", + "dbFlavorName": "dbFlavorName-example", + "ram": 1, "vcpus": 1 } ] @@ -223,7 +230,7 @@ GET /v4.0/network/subnets | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | subnets | Body | Array | 서브넷 목록 | -| subnets.subnetId | Body | String | 서브넷의 식별자 | +| subnets.subnetId | Body | UUID | 서브넷의 식별자 | | subnets.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnets.subnetCidr | Body | String | 서브넷의 CIDR | | subnets.usingGateway | Body | Boolean | 게이트웨이 사용 여부 | @@ -241,6 +248,10 @@ GET /v4.0/network/subnets }, "subnets": [ { + "subnetId": "550e8400-e29b-41d4-a716-446655440000", + "subnetName": "subnetName-example", + "subnetCidr": "subnetCidr-example", + "usingGateway": false, "availableIpCount": 1 } ] @@ -285,6 +296,8 @@ GET /v4.0/db-versions }, "dbVersions": [ { + "dbVersion": "dbVersion-example", + "dbVersionName": "dbVersionName-example", "restorableFromObs": false } ] @@ -392,6 +405,7 @@ GET /v4.0/jobs/{jobId} "jobStatus": "DELETED", "resourceRelations": [ { + "resourceType": "resourceType-example", "resourceId": "resourceId-example" } ], @@ -439,6 +453,9 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { + "dbInstanceGroupId": "dbInstanceGroupId-example", + "replicationType": "STANDALONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -491,6 +508,8 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "replicationType": "STANDALONE", "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } ], @@ -590,6 +609,16 @@ GET /v4.0/db-instances }, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", + "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceName": "dbInstanceName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "dbPort": 1, + "dbInstanceType": "MASTER", + "dbInstanceStatus": "BEFORE_CREATE", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -703,6 +732,7 @@ POST /v4.0/db-instances "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -832,6 +862,7 @@ POST /v4.0/db-instances/restore-from-obs "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1129,6 +1160,7 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1172,6 +1204,7 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -1241,6 +1274,8 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs }, "binLogs": [ { + "binLogFileName": "binLogFileName-example", + "binLogFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1319,6 +1354,9 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates }, "certificates": [ { + "fileName": "fileName-example", + "certificateType": "CA_FILE", + "fileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1426,6 +1464,9 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { + "dbSchemaId": "dbSchemaId-example", + "dbSchemaName": "dbSchemaName-example", + "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -1568,6 +1609,14 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { + "dbUserId": "dbUserId-example", + "dbUserName": "dbUserName-example", + "host": "host-example", + "authorityType": "CUSTOM", + "dbUserStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00", + "authenticationPlugin": "NATIVE", "tlsOption": "NONE" } ] @@ -2082,6 +2131,9 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files }, "logFiles": [ { + "logFileName": "logFileName-example", + "logFileType": "ERROR", + "logFileSize": 1, "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2243,6 +2295,19 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { + "maintenanceId": "maintenanceId-example", + "dbInstanceId": "dbInstanceId-example", + "category": "USER", + "description": "description-example", + "type": "UPDATE_DB_INSTANCE", + "payload": { + }, + "required": false, + "deadlineYmdt": "2023-12-31T15:00:00+09:00", + "status": "PENDING", + "executionType": "SCHEDULED", + "addedYmdt": "2023-12-31T15:00:00+09:00", + "executionStartedYmdt": "2023-12-31T15:00:00+09:00", "executionCompletedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -2418,6 +2483,8 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info }, "endPoints": [ { + "domain": "domain-example", + "ipAddress": "ipAddress-example", "endPointType": "endPointType-example" } ] @@ -2638,6 +2705,7 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -2781,6 +2849,23 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "latestRestorableYmdt": "2023-12-31T15:00:00+09:00", "restorableBackups": [ { + "backup": { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbInstanceName": "dbInstanceName-example", + "dbVersion": "ENUM_VALUE", + "backupType": "AUTO", + "backupSize": 1, + "useBackupLock": false, + "failoverCount": 1, + "binLogFileName": "binLogFileName-example", + "binLogPosition": { + }, + "createdYmdt": "2023-12-31T15:00:00+09:00", + "updatedYmdt": "2023-12-31T15:00:00+09:00" + }, "restorableBinLogs": [] } ] @@ -2947,6 +3032,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useBackupLock": true, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3243,6 +3329,15 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { + "backupId": "backupId-example", + "backupName": "backupName-example", + "backupStatus": "BACKING_UP", + "dbInstanceId": "dbInstanceId-example", + "dbVersion": "ENUM_VALUE", + "utilVersion": "utilVersion-example", + "backupType": "AUTO", + "backupSize": 1, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3574,6 +3669,7 @@ POST /v4.0/backups/{backupId}/restore "useBackupLock": false, "backupSchedules": [ { + "backupWndBgnTime": "backupWndBgnTime-example", "backupWndDuration": "HALF_AN_HOUR" } ] @@ -3656,6 +3752,11 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { + "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupName": "dbSecurityGroupName-example", + "description": "description-example", + "progressStatus": "NONE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -3698,6 +3799,14 @@ POST /v4.0/db-security-groups "description": "description-example", "rules": [ { + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 3306, + "maxPort": 1 + }, + "cidr": "cidr-example", "description": "description-example" } ] @@ -3805,6 +3914,17 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "progressStatus": "NONE", "rules": [ { + "ruleId": "ruleId-example", + "description": "description-example", + "direction": "INGRESS", + "etherType": "IPV4", + "port": { + "portType": "ALL", + "minPort": 1, + "maxPort": 1 + }, + "cidr": "cidr-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ], @@ -4062,6 +4182,13 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { + "parameterGroupId": "parameterGroupId-example", + "parameterGroupName": "parameterGroupName-example", + "description": "description-example", + "dbVersion": "ENUM_VALUE", + "parameterGroupType": "USER", + "parameterGroupStatus": "STABLE", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4199,6 +4326,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "parameterGroupStatus": "STABLE", "parameters": [ { + "parameterId": "parameterId-example", + "parameterFileGroup": "CLIENT", + "parameterName": "parameterName-example", + "fileParameterName": "fileParameterName-example", + "value": "value-example", + "defaultValue": "defaultValue-example", + "allowedValue": "allowedValue-example", + "updateType": "VARIABLE", "applyType": "BOTH" } ], @@ -4319,6 +4454,7 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters { "modifiedParameters": [ { + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "value": "value-example" } ] @@ -4390,6 +4526,9 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { + "userGroupId": "userGroupId-example", + "userGroupName": "userGroupName-example", + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4600,6 +4739,12 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { + "notificationGroupId": "notificationGroupId-example", + "notificationGroupName": "notificationGroupName-example", + "notifyEmail": false, + "notifySms": false, + "isEnabled": false, + "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -4739,11 +4884,13 @@ GET /v4.0/notification-groups/{notificationGroupId} "isEnabled": false, "dbInstances": [ { + "dbInstanceId": "dbInstanceId-example", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { + "userGroupId": "userGroupId-example", "userGroupName": "userGroupName-example" } ], @@ -4846,6 +4993,7 @@ GET /v4.0/metrics }, "metrics": [ { + "measureName": "measureName-example", "unit": "unit-example" } ] @@ -4902,6 +5050,7 @@ GET /v4.0/event-codes }, "eventCodes": [ { + "eventCode": "ENUM_VALUE", "eventCategoryType": "ALL" } ] @@ -4951,6 +5100,16 @@ GET /v4.0/events "totalCounts": 1, "events": [ { + "eventCategoryType": "ALL", + "eventCode": "ENUM_VALUE", + "sourceId": "sourceId-example", + "sourceName": "sourceName-example", + "messages": [ + { + "langCode": "KO", + "message": "message-example" + } + ], "eventYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5006,6 +5165,20 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { + "eventSubscriptionId": "eventSubscriptionId-example", + "eventCategoryType": "ALL", + "eventSubscriptionName": "eventSubscriptionName-example", + "enabled": false, + "notifyEmail": false, + "notifySms": false, + "eventCodes": [], + "sources": [ + { + "sourceId": "sourceId-example", + "eventCategoryType": "ALL" + } + ], + "userGroupIds": [], "createdYmdt": "2023-12-31T15:00:00+09:00" } ] @@ -5051,6 +5224,7 @@ POST /v4.0/event-subscriptions "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5141,6 +5315,7 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} "eventCodes": [], "sources": [ { + "sourceId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL" } ], @@ -5190,6 +5365,7 @@ GET /v4.0/availability-zones }, "availabilityZones": [ { + "availabilityZoneName": "availabilityZoneName-example", "zoneState": { "available": false } From 7280e4aad4374bdbde2ebbff7ecebc76bf7816bd Mon Sep 17 00:00:00 2001 From: hyungmin-oh Date: Thu, 4 Jun 2026 13:48:28 +0900 Subject: [PATCH 5/7] =?UTF-8?q?docs:=20API=20=EA=B0=80=EC=9D=B4=EB=93=9C?= =?UTF-8?q?=20=ED=83=80=EC=9D=B4=ED=8B=80=20=EB=B2=84=EC=A0=84=20=ED=91=9C?= =?UTF-8?q?=EA=B8=B0=20=EB=B0=8F=20=EA=B3=B5=ED=86=B5=20=EC=A0=95=EB=B3=B4?= =?UTF-8?q?=20=EC=84=B9=EC=85=98=20=EC=88=9C=EC=84=9C=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 타이틀: 'Database > RDS for {엔진} > API {버전} 가이드' (버전 포함) - 공통 정보: API 엔드포인트 → 인증 및 권한 → 응답 공통 정보 → DB 엔진 유형 순 --- ko/api-guide-v3.0-gov.md | 15 ++++++++------- ko/api-guide-v3.0-ncgn.md | 15 ++++++++------- ko/api-guide-v3.0-ngoic.md | 15 ++++++++------- ko/api-guide-v3.0-ngovc.md | 15 ++++++++------- ko/api-guide-v3.0-ngsc.md | 15 ++++++++------- ko/api-guide-v3.0-ninc.md | 15 ++++++++------- ko/api-guide-v3.0.md | 19 ++++++++++--------- ko/api-guide-v4.0-gov.md | 15 ++++++++------- ko/api-guide-v4.0-ncgn.md | 15 ++++++++------- ko/api-guide-v4.0-ngoic.md | 15 ++++++++------- ko/api-guide-v4.0-ngovc.md | 15 ++++++++------- ko/api-guide-v4.0-ngsc.md | 15 ++++++++------- ko/api-guide-v4.0-ninc.md | 15 ++++++++------- ko/api-guide-v4.0.md | 19 ++++++++++--------- mariadb/ko/api-guide-v4.0-gov.md | 15 ++++++++------- mariadb/ko/api-guide-v4.0.md | 15 ++++++++------- 16 files changed, 132 insertions(+), 116 deletions(-) diff --git a/ko/api-guide-v3.0-gov.md b/ko/api-guide-v3.0-gov.md index 27e79667..be13c5e6 100644 --- a/ko/api-guide-v3.0-gov.md +++ b/ko/api-guide-v3.0-gov.md @@ -1,7 +1,14 @@ -## Database > RDS for MySQL > API 가이드 +## Database > RDS for MySQL > API v3.0 가이드 ## RDS for MySQL API 공통 정보 +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(판교) 리전 | https://kr1-rds-mysql.api.gov-nhncloudservice.com | + + ### 인증 및 권한 RDS for MySQL API를 사용하려면 User Access Key가 필요합니다. User Access Key는 NHN Cloud 계정 또는 IAM 계정을 기반으로 발급되는 인증 키로, Secret Access Key와 함께 사용하여 API 요청에 대한 인증 수단으로 활용됩니다. @@ -50,12 +57,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|------|----------| -| 한국(판교) 리전 | https://kr1-rds-mysql.api.gov-nhncloudservice.com | - ### DB 엔진 유형 | DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | diff --git a/ko/api-guide-v3.0-ncgn.md b/ko/api-guide-v3.0-ncgn.md index f5397574..a423ff64 100644 --- a/ko/api-guide-v3.0-ncgn.md +++ b/ko/api-guide-v3.0-ncgn.md @@ -1,7 +1,14 @@ -## Database > RDS for MySQL > API 가이드 +## Database > RDS for MySQL > API v3.0 가이드 ## RDS for MySQL API 공통 정보 +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(판교) 리전 | https://kr1-rds-mysql.api.gncloud.go.kr | + + ### 인증 및 권한 RDS for MySQL API를 사용하려면 User Access Key가 필요합니다. User Access Key는 NHN Cloud 계정 또는 IAM 계정을 기반으로 발급되는 인증 키로, Secret Access Key와 함께 사용하여 API 요청에 대한 인증 수단으로 활용됩니다. @@ -50,12 +57,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|------|----------| -| 한국(판교) 리전 | https://kr1-rds-mysql.api.gncloud.go.kr | - ### DB 엔진 유형 | DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | diff --git a/ko/api-guide-v3.0-ngoic.md b/ko/api-guide-v3.0-ngoic.md index 4de6b338..a633809e 100644 --- a/ko/api-guide-v3.0-ngoic.md +++ b/ko/api-guide-v3.0-ngoic.md @@ -1,7 +1,14 @@ -## Database > RDS for MySQL > API 가이드 +## Database > RDS for MySQL > API v3.0 가이드 ## RDS for MySQL API 공통 정보 +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(대구) 리전 | https://ngoic-kr4-rds-proxy.cloud.toastoven.net | + + ### 인증 및 권한 RDS for MySQL API를 사용하려면 User Access Key가 필요합니다. User Access Key는 NHN Cloud 계정 또는 IAM 계정을 기반으로 발급되는 인증 키로, Secret Access Key와 함께 사용하여 API 요청에 대한 인증 수단으로 활용됩니다. @@ -50,12 +57,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|------|----------| -| 한국(대구) 리전 | https://ngoic-kr4-rds-proxy.cloud.toastoven.net | - ### DB 엔진 유형 | DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | diff --git a/ko/api-guide-v3.0-ngovc.md b/ko/api-guide-v3.0-ngovc.md index 76e2af24..fd6c21a9 100644 --- a/ko/api-guide-v3.0-ngovc.md +++ b/ko/api-guide-v3.0-ngovc.md @@ -1,7 +1,14 @@ -## Database > RDS for MySQL > API 가이드 +## Database > RDS for MySQL > API v3.0 가이드 ## RDS for MySQL API 공통 정보 +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(대구) 리전 | https://ngovc-kr4-rds-proxy.cloud.toastoven.net | + + ### 인증 및 권한 RDS for MySQL API를 사용하려면 User Access Key가 필요합니다. User Access Key는 NHN Cloud 계정 또는 IAM 계정을 기반으로 발급되는 인증 키로, Secret Access Key와 함께 사용하여 API 요청에 대한 인증 수단으로 활용됩니다. @@ -50,12 +57,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|------|----------| -| 한국(대구) 리전 | https://ngovc-kr4-rds-proxy.cloud.toastoven.net | - ### DB 엔진 유형 | DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | diff --git a/ko/api-guide-v3.0-ngsc.md b/ko/api-guide-v3.0-ngsc.md index e0bde4be..04511165 100644 --- a/ko/api-guide-v3.0-ngsc.md +++ b/ko/api-guide-v3.0-ngsc.md @@ -1,7 +1,14 @@ -## Database > RDS for MySQL > API 가이드 +## Database > RDS for MySQL > API v3.0 가이드 ## RDS for MySQL API 공통 정보 +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(대구) 리전 | https://ngsc-kr4-rds-proxy.cloud.toastoven.net | + + ### 인증 및 권한 RDS for MySQL API를 사용하려면 User Access Key가 필요합니다. User Access Key는 NHN Cloud 계정 또는 IAM 계정을 기반으로 발급되는 인증 키로, Secret Access Key와 함께 사용하여 API 요청에 대한 인증 수단으로 활용됩니다. @@ -50,12 +57,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|------|----------| -| 한국(대구) 리전 | https://ngsc-kr4-rds-proxy.cloud.toastoven.net | - ### DB 엔진 유형 | DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | diff --git a/ko/api-guide-v3.0-ninc.md b/ko/api-guide-v3.0-ninc.md index e4c6747d..b490d231 100644 --- a/ko/api-guide-v3.0-ninc.md +++ b/ko/api-guide-v3.0-ninc.md @@ -1,7 +1,14 @@ -## Database > RDS for MySQL > API 가이드 +## Database > RDS for MySQL > API v3.0 가이드 ## RDS for MySQL API 공통 정보 +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(대구) 리전 | https://ninc-kr4-rds-proxy.cloud.toastoven.net | + + ### 인증 및 권한 RDS for MySQL API를 사용하려면 User Access Key가 필요합니다. User Access Key는 NHN Cloud 계정 또는 IAM 계정을 기반으로 발급되는 인증 키로, Secret Access Key와 함께 사용하여 API 요청에 대한 인증 수단으로 활용됩니다. @@ -50,12 +57,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|------|----------| -| 한국(대구) 리전 | https://ninc-kr4-rds-proxy.cloud.toastoven.net | - ### DB 엔진 유형 | DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | diff --git a/ko/api-guide-v3.0.md b/ko/api-guide-v3.0.md index 286e1270..e3f688b1 100644 --- a/ko/api-guide-v3.0.md +++ b/ko/api-guide-v3.0.md @@ -1,7 +1,16 @@ -## Database > RDS for MySQL > API 가이드 +## Database > RDS for MySQL > API v3.0 가이드 ## RDS for MySQL API 공통 정보 +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(판교) 리전 | https://kr1-rds-mysql.api.nhncloudservice.com | +| 한국(평촌) 리전 | https://kr2-rds-mysql.api.nhncloudservice.com | +| 일본 리전 | https://jp1-rds-mysql.api.nhncloudservice.com | + + ### 인증 및 권한 RDS for MySQL API를 사용하려면 User Access Key가 필요합니다. User Access Key는 NHN Cloud 계정 또는 IAM 계정을 기반으로 발급되는 인증 키로, Secret Access Key와 함께 사용하여 API 요청에 대한 인증 수단으로 활용됩니다. @@ -50,14 +59,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultCode | Number | 결과 코드
- 성공: `0`
- 실패: `0`이 아닌 값 | | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|------|----------| -| 한국(판교) 리전 | https://kr1-rds-mysql.api.nhncloudservice.com | -| 한국(평촌) 리전 | https://kr2-rds-mysql.api.nhncloudservice.com | -| 일본 리전 | https://jp1-rds-mysql.api.nhncloudservice.com | - ### DB 엔진 유형 | DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | diff --git a/ko/api-guide-v4.0-gov.md b/ko/api-guide-v4.0-gov.md index b960ef9a..2eec8d0a 100644 --- a/ko/api-guide-v4.0-gov.md +++ b/ko/api-guide-v4.0-gov.md @@ -1,7 +1,14 @@ -## Database > RDS for MySQL > API 가이드 +## Database > RDS for MySQL > API v4.0 가이드 ## RDS for MySQL API 공통 정보 +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(판교) 리전 | https://kr1-rds-mysql.api.gov-nhncloudservice.com | + + ### 인증 및 권한 RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. @@ -48,12 +55,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|------|----------| -| 한국(판교) 리전 | https://kr1-rds-mysql.api.gov-nhncloudservice.com | - ### DB 엔진 유형 | DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | diff --git a/ko/api-guide-v4.0-ncgn.md b/ko/api-guide-v4.0-ncgn.md index c2d9e3b6..02856579 100644 --- a/ko/api-guide-v4.0-ncgn.md +++ b/ko/api-guide-v4.0-ncgn.md @@ -1,7 +1,14 @@ -## Database > RDS for MySQL > API 가이드 +## Database > RDS for MySQL > API v4.0 가이드 ## RDS for MySQL API 공통 정보 +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(판교) 리전 | https://kr1-rds-mysql.api.gncloud.go.kr | + + ### 인증 및 권한 RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. @@ -48,12 +55,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|------|----------| -| 한국(판교) 리전 | https://kr1-rds-mysql.api.gncloud.go.kr | - ### DB 엔진 유형 | DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | diff --git a/ko/api-guide-v4.0-ngoic.md b/ko/api-guide-v4.0-ngoic.md index 930103f0..1a1f8dff 100644 --- a/ko/api-guide-v4.0-ngoic.md +++ b/ko/api-guide-v4.0-ngoic.md @@ -1,7 +1,14 @@ -## Database > RDS for MySQL > API 가이드 +## Database > RDS for MySQL > API v4.0 가이드 ## RDS for MySQL API 공통 정보 +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(대구) 리전 | https://ngoic-kr4-rds-proxy.cloud.toastoven.net | + + ### 인증 및 권한 RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. @@ -48,12 +55,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|------|----------| -| 한국(대구) 리전 | https://ngoic-kr4-rds-proxy.cloud.toastoven.net | - ### DB 엔진 유형 | DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | diff --git a/ko/api-guide-v4.0-ngovc.md b/ko/api-guide-v4.0-ngovc.md index 7f3ca89f..6911efdc 100644 --- a/ko/api-guide-v4.0-ngovc.md +++ b/ko/api-guide-v4.0-ngovc.md @@ -1,7 +1,14 @@ -## Database > RDS for MySQL > API 가이드 +## Database > RDS for MySQL > API v4.0 가이드 ## RDS for MySQL API 공통 정보 +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(대구) 리전 | https://ngovc-kr4-rds-proxy.cloud.toastoven.net | + + ### 인증 및 권한 RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. @@ -48,12 +55,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|------|----------| -| 한국(대구) 리전 | https://ngovc-kr4-rds-proxy.cloud.toastoven.net | - ### DB 엔진 유형 | DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | diff --git a/ko/api-guide-v4.0-ngsc.md b/ko/api-guide-v4.0-ngsc.md index e3f4f169..63b087fe 100644 --- a/ko/api-guide-v4.0-ngsc.md +++ b/ko/api-guide-v4.0-ngsc.md @@ -1,7 +1,14 @@ -## Database > RDS for MySQL > API 가이드 +## Database > RDS for MySQL > API v4.0 가이드 ## RDS for MySQL API 공통 정보 +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(대구) 리전 | https://ngsc-kr4-rds-proxy.cloud.toastoven.net | + + ### 인증 및 권한 RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. @@ -48,12 +55,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|------|----------| -| 한국(대구) 리전 | https://ngsc-kr4-rds-proxy.cloud.toastoven.net | - ### DB 엔진 유형 | DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | diff --git a/ko/api-guide-v4.0-ninc.md b/ko/api-guide-v4.0-ninc.md index ded307af..19954140 100644 --- a/ko/api-guide-v4.0-ninc.md +++ b/ko/api-guide-v4.0-ninc.md @@ -1,7 +1,14 @@ -## Database > RDS for MySQL > API 가이드 +## Database > RDS for MySQL > API v4.0 가이드 ## RDS for MySQL API 공통 정보 +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(대구) 리전 | https://ninc-kr4-rds-proxy.cloud.toastoven.net | + + ### 인증 및 권한 RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. @@ -48,12 +55,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|------|----------| -| 한국(대구) 리전 | https://ninc-kr4-rds-proxy.cloud.toastoven.net | - ### DB 엔진 유형 | DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | diff --git a/ko/api-guide-v4.0.md b/ko/api-guide-v4.0.md index 4500ec82..ccab11bf 100644 --- a/ko/api-guide-v4.0.md +++ b/ko/api-guide-v4.0.md @@ -1,7 +1,16 @@ -## Database > RDS for MySQL > API 가이드 +## Database > RDS for MySQL > API v4.0 가이드 ## RDS for MySQL API 공통 정보 +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(판교) 리전 | https://kr1-rds-mysql.api.nhncloudservice.com | +| 한국(평촌) 리전 | https://kr2-rds-mysql.api.nhncloudservice.com | +| 일본 리전 | https://jp1-rds-mysql.api.nhncloudservice.com | + + ### 인증 및 권한 RDS for MySQL은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. @@ -48,14 +57,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|------|----------| -| 한국(판교) 리전 | https://kr1-rds-mysql.api.nhncloudservice.com | -| 한국(평촌) 리전 | https://kr2-rds-mysql.api.nhncloudservice.com | -| 일본 리전 | https://jp1-rds-mysql.api.nhncloudservice.com | - ### DB 엔진 유형 | DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | diff --git a/mariadb/ko/api-guide-v4.0-gov.md b/mariadb/ko/api-guide-v4.0-gov.md index 9cea85f4..3a85650a 100644 --- a/mariadb/ko/api-guide-v4.0-gov.md +++ b/mariadb/ko/api-guide-v4.0-gov.md @@ -1,7 +1,14 @@ -## Database > RDS for MariaDB > API 가이드 +## Database > RDS for MariaDB > API v4.0 가이드 ## RDS for MariaDB API 공통 정보 +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(판교) 리전 | https://kr1-rds-mariadb.api.gov-nhncloudservice.com | + + ### 인증 및 권한 RDS for MariaDB은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. @@ -48,12 +55,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|------|----------| -| 한국(판교) 리전 | https://kr1-rds-mariadb.api.gov-nhncloudservice.com | - ### DB 엔진 유형 | DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | diff --git a/mariadb/ko/api-guide-v4.0.md b/mariadb/ko/api-guide-v4.0.md index ca8edbcb..b3e022dd 100644 --- a/mariadb/ko/api-guide-v4.0.md +++ b/mariadb/ko/api-guide-v4.0.md @@ -1,7 +1,14 @@ -## Database > RDS for MariaDB > API 가이드 +## Database > RDS for MariaDB > API v4.0 가이드 ## RDS for MariaDB API 공통 정보 +### API 엔드포인트 + +| 리전 | 엔드포인트 | +|------|----------| +| 한국(판교) 리전 | https://kr1-rds-mariadb.api.nhncloudservice.com | + + ### 인증 및 권한 RDS for MariaDB은(는) API 호출 시 인증/인가를 위해 User Access Key 토큰을 사용합니다. User Access Key 토큰은 User Access Key를 기반으로 발급되는 Bearer 타입의 일시적 액세스 토큰입니다. User Access Key 토큰 발급 및 사용에 대한 자세한 내용은 [User Access Key 토큰](/nhncloud/ko/public-api/user-access-key-token)을 참고하세요. @@ -48,12 +55,6 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 | resultMessage | String | 결과 메시지 | | isSuccessful | Boolean | 성공 여부 | -### API 엔드포인트 - -| 리전 | 엔드포인트 | -|------|----------| -| 한국(판교) 리전 | https://kr1-rds-mariadb.api.nhncloudservice.com | - ### DB 엔진 유형 | DB 엔진 유형 | 생성 가능 여부 | OBS로부터 복원 가능 여부 | 인증 플러그인 지원 | From fa03b0deb17fbd9eea0f64661a3d24ad62c2396f Mon Sep 17 00:00:00 2001 From: hyungmin-oh Date: Thu, 4 Jun 2026 15:09:24 +0900 Subject: [PATCH 6/7] =?UTF-8?q?docs:=20API=20=EA=B0=80=EC=9D=B4=EB=93=9C?= =?UTF-8?q?=20=ED=95=84=EC=9A=94=20=EA=B6=8C=ED=95=9C=20=EC=84=B9=EC=85=98?= =?UTF-8?q?=20=EB=B3=B5=EA=B5=AC=20(nhn-api-codex=201.0.2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ko/api-guide-v4.0-gov.md | 582 +++++++++++++++++++++++++++++++ ko/api-guide-v4.0-ncgn.md | 582 +++++++++++++++++++++++++++++++ ko/api-guide-v4.0-ngoic.md | 582 +++++++++++++++++++++++++++++++ ko/api-guide-v4.0-ngovc.md | 582 +++++++++++++++++++++++++++++++ ko/api-guide-v4.0-ngsc.md | 582 +++++++++++++++++++++++++++++++ ko/api-guide-v4.0-ninc.md | 582 +++++++++++++++++++++++++++++++ ko/api-guide-v4.0.md | 582 +++++++++++++++++++++++++++++++ mariadb/ko/api-guide-v4.0-gov.md | 582 +++++++++++++++++++++++++++++++ mariadb/ko/api-guide-v4.0.md | 582 +++++++++++++++++++++++++++++++ 9 files changed, 5238 insertions(+) diff --git a/ko/api-guide-v4.0-gov.md b/ko/api-guide-v4.0-gov.md index 2eec8d0a..d1d630de 100644 --- a/ko/api-guide-v4.0-gov.md +++ b/ko/api-guide-v4.0-gov.md @@ -96,6 +96,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 GET /v4.0/project/members ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Project.Get | 프로젝트 멤버 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -142,6 +148,12 @@ GET /v4.0/project/members GET /v4.0/project/regions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Project.Get | 리전 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -186,6 +198,12 @@ GET /v4.0/project/regions GET /v4.0/db-flavors ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbFlavor.List | DB 인스턴스 사양 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -234,6 +252,12 @@ GET /v4.0/db-flavors GET /v4.0/network/subnets ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Network.List | 서브넷 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -284,6 +308,12 @@ GET /v4.0/network/subnets GET /v4.0/db-versions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbVersion.List | DB 엔진 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -330,6 +360,12 @@ GET /v4.0/db-versions GET /v4.0/storage-types ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Storage.List | 스토리지 타입 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -384,6 +420,12 @@ GET /v4.0/storage-types GET /v4.0/jobs/{jobId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Job.Get | 작업 정보 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -440,6 +482,12 @@ GET /v4.0/jobs/{jobId} GET /v4.0/db-instance-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -486,6 +534,12 @@ GET /v4.0/db-instance-groups GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -589,6 +643,12 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.List | DB 인스턴스 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -649,6 +709,12 @@ GET /v4.0/db-instances POST /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Create | DB 인스턴스 생성하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -787,6 +853,12 @@ POST /v4.0/db-instances POST /v4.0/db-instances/restore-from-obs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.RestoreFromObs | 오브젝트 스토리지를 이용한 DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -930,6 +1002,12 @@ POST /v4.0/db-instances/restore-from-obs DELETE /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Delete | DB 인스턴스 삭제하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -980,6 +1058,12 @@ DELETE /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1059,6 +1143,12 @@ GET /v4.0/db-instances/{dbInstanceId} PUT /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1135,6 +1225,12 @@ PUT /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 백업 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1191,6 +1287,12 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info PUT /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 백업 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1258,6 +1360,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info GET /v4.0/db-instances/{dbInstanceId}/binlogs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceBinLog.List | 바이너리 로그 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1306,6 +1414,12 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceBinLog.Purge | 바이너리 로그 삭제 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1337,6 +1451,12 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge GET /v4.0/db-instances/{dbInstanceId}/certificates ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceCertificate.List | 인증서 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1387,6 +1507,12 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates POST /v4.0/db-instances/{dbInstanceId}/certificates/upload ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceCertificate.Export | 인증서 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1447,6 +1573,12 @@ POST /v4.0/db-instances/{dbInstanceId}/certificates/upload GET /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.List | DB 스키마 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1497,6 +1629,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas POST /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.Create | DB 스키마 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1547,6 +1685,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-schemas DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.Delete | DB 스키마 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1587,6 +1731,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} GET /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.List | DB 사용자 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1647,6 +1797,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users POST /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Create | DB 사용자 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1707,6 +1863,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-users DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Delete | DB 사용자 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1747,6 +1909,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Modify | DB 사용자 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1804,6 +1972,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | DB 인스턴스 삭제 보호 설정 변경 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1835,6 +2009,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1855,6 +2035,12 @@ POST /v4.0/db-instances/{dbInstanceId}/force-restart GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 고가용성 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1900,6 +2086,12 @@ GET /v4.0/db-instances/{dbInstanceId}/high-availability PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Modify | 고가용성 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1958,6 +2150,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/high-availability POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Pause | 고가용성 일시 중지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1997,6 +2195,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Repair | 고가용성 복구하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2036,6 +2240,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Resume | 고가용성 다시 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2075,6 +2285,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Split | 고가용성 분리하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2114,6 +2330,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/split GET /v4.0/db-instances/{dbInstanceId}/log-files ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.List | 로그 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2164,6 +2386,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files POST /v4.0/db-instances/{dbInstanceId}/log-files/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.Export | 로그 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2224,6 +2452,12 @@ POST /v4.0/db-instances/{dbInstanceId}/log-files/export GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.Get | 로그 파일 내용 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2264,6 +2498,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.List | DB 인스턴스 유지 관리 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2338,6 +2578,12 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Execute | DB 인스턴스 유지 관리 즉시 실행하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2396,6 +2642,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Update | DB 인스턴스 유지 관리 예약하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2435,6 +2687,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Delete | DB 인스턴스 유지 관리 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2456,6 +2714,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} GET /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 네트워크 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2515,6 +2779,12 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 네트워크 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2565,6 +2835,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/network-info POST /v4.0/db-instances/{dbInstanceId}/promote ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Promote | DB 인스턴스 승격하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2604,6 +2880,12 @@ POST /v4.0/db-instances/{dbInstanceId}/promote POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Rebuild | DB 인스턴스 재구축하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2643,6 +2925,12 @@ POST /v4.0/db-instances/{dbInstanceId}/rebuild POST /v4.0/db-instances/{dbInstanceId}/replicate ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Replicate | DB 인스턴스 복제하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2760,6 +3048,12 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate POST /v4.0/db-instances/{dbInstanceId}/restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Restart | DB 인스턴스 재시작하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2816,6 +3110,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restart GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | DB 인스턴스 복원 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2896,6 +3196,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 복원될 마지막 쿼리 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2937,6 +3243,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query POST /v4.0/db-instances/{dbInstanceId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Restore | DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3101,6 +3413,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restore POST /v4.0/db-instances/{dbInstanceId}/start ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Start | DB 인스턴스 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3140,6 +3458,12 @@ POST /v4.0/db-instances/{dbInstanceId}/start POST /v4.0/db-instances/{dbInstanceId}/stop ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Stop | DB 인스턴스 정지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3179,6 +3503,12 @@ POST /v4.0/db-instances/{dbInstanceId}/stop GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 스토리지 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3233,6 +3563,12 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 스토리지 정보 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3308,6 +3644,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/storage-info GET /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.List | 백업 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3368,6 +3710,12 @@ GET /v4.0/backups POST /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Create | 백업 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3423,6 +3771,12 @@ POST /v4.0/backups DELETE /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Delete | 백업 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3462,6 +3816,12 @@ DELETE /v4.0/backups/{backupId} GET /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Get | 백업 단건 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3537,6 +3897,12 @@ GET /v4.0/backups/{backupId} POST /v4.0/backups/{backupId}/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Export | 백업 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3595,6 +3961,12 @@ POST /v4.0/backups/{backupId}/export POST /v4.0/backups/{backupId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Restore | 백업 복원하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3735,6 +4107,12 @@ POST /v4.0/backups/{backupId}/restore GET /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3787,6 +4165,12 @@ GET /v4.0/db-security-groups POST /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3860,6 +4244,12 @@ POST /v4.0/db-security-groups DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3880,6 +4270,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} GET /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3957,6 +4353,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3990,6 +4392,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Delete | DB 보안 그룹 규칙 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4030,6 +4438,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4095,6 +4509,12 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4163,6 +4583,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} GET /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.List | 파라미터 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4219,6 +4645,12 @@ GET /v4.0/parameter-groups POST /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Create | 파라미터 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4272,6 +4704,12 @@ POST /v4.0/parameter-groups DELETE /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4292,6 +4730,12 @@ DELETE /v4.0/parameter-groups/{parameterGroupId} GET /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Get | 파라미터 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4366,6 +4810,12 @@ GET /v4.0/parameter-groups/{parameterGroupId} PUT /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4399,6 +4849,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId} POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Copy | 파라미터 그룹 복사하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4451,6 +4907,12 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Modify | 파라미터 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4489,6 +4951,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4511,6 +4979,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset GET /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.List | 사용자 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4559,6 +5033,12 @@ GET /v4.0/user-groups POST /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Create | 사용자 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4612,6 +5092,12 @@ POST /v4.0/user-groups DELETE /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Delete | 사용자 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4632,6 +5118,12 @@ DELETE /v4.0/user-groups/{userGroupId} GET /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Get | 사용자 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4686,6 +5178,12 @@ GET /v4.0/user-groups/{userGroupId} PUT /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Modify | 사용자 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4723,6 +5221,12 @@ PUT /v4.0/user-groups/{userGroupId} GET /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.List | 알림 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4775,6 +5279,12 @@ GET /v4.0/notification-groups POST /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Create | 알림 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4834,6 +5344,12 @@ POST /v4.0/notification-groups DELETE /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Delete | 알림 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4854,6 +5370,12 @@ DELETE /v4.0/notification-groups/{notificationGroupId} GET /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Get | 알림 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4923,6 +5445,12 @@ GET /v4.0/notification-groups/{notificationGroupId} PUT /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Modify | 알림 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4966,6 +5494,12 @@ PUT /v4.0/notification-groups/{notificationGroupId} GET /v4.0/metric-statistics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Metric.List | 통계 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4982,6 +5516,12 @@ GET /v4.0/metric-statistics GET /v4.0/metrics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Metric.List | Metric 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5039,6 +5579,12 @@ GET /v4.0/metrics GET /v4.0/event-codes ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Event.List | 구독 가능한 이벤트 코드 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5081,6 +5627,12 @@ GET /v4.0/event-codes GET /v4.0/events ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Event.List | 이벤트 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5142,6 +5694,12 @@ GET /v4.0/events GET /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.List | 이벤트 구독 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5209,6 +5767,12 @@ GET /v4.0/event-subscriptions POST /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Create | 이벤트 구독 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5279,6 +5843,12 @@ POST /v4.0/event-subscriptions DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Delete | 이벤트 구독 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5299,6 +5869,12 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} PUT /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Modify | 이벤트 구독 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5353,6 +5929,12 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} GET /v4.0/availability-zones ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:AvailabilityZone.List | 가용성 영역 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. diff --git a/ko/api-guide-v4.0-ncgn.md b/ko/api-guide-v4.0-ncgn.md index 02856579..699564a4 100644 --- a/ko/api-guide-v4.0-ncgn.md +++ b/ko/api-guide-v4.0-ncgn.md @@ -96,6 +96,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 GET /v4.0/project/members ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Project.Get | 프로젝트 멤버 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -142,6 +148,12 @@ GET /v4.0/project/members GET /v4.0/project/regions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Project.Get | 리전 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -186,6 +198,12 @@ GET /v4.0/project/regions GET /v4.0/db-flavors ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbFlavor.List | DB 인스턴스 사양 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -234,6 +252,12 @@ GET /v4.0/db-flavors GET /v4.0/network/subnets ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Network.List | 서브넷 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -284,6 +308,12 @@ GET /v4.0/network/subnets GET /v4.0/db-versions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbVersion.List | DB 엔진 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -330,6 +360,12 @@ GET /v4.0/db-versions GET /v4.0/storage-types ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Storage.List | 스토리지 타입 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -384,6 +420,12 @@ GET /v4.0/storage-types GET /v4.0/jobs/{jobId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Job.Get | 작업 정보 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -440,6 +482,12 @@ GET /v4.0/jobs/{jobId} GET /v4.0/db-instance-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -486,6 +534,12 @@ GET /v4.0/db-instance-groups GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -589,6 +643,12 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.List | DB 인스턴스 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -649,6 +709,12 @@ GET /v4.0/db-instances POST /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Create | DB 인스턴스 생성하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -787,6 +853,12 @@ POST /v4.0/db-instances POST /v4.0/db-instances/restore-from-obs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.RestoreFromObs | 오브젝트 스토리지를 이용한 DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -930,6 +1002,12 @@ POST /v4.0/db-instances/restore-from-obs DELETE /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Delete | DB 인스턴스 삭제하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -980,6 +1058,12 @@ DELETE /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1059,6 +1143,12 @@ GET /v4.0/db-instances/{dbInstanceId} PUT /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1135,6 +1225,12 @@ PUT /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 백업 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1191,6 +1287,12 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info PUT /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 백업 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1258,6 +1360,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info GET /v4.0/db-instances/{dbInstanceId}/binlogs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceBinLog.List | 바이너리 로그 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1306,6 +1414,12 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceBinLog.Purge | 바이너리 로그 삭제 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1337,6 +1451,12 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge GET /v4.0/db-instances/{dbInstanceId}/certificates ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceCertificate.List | 인증서 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1387,6 +1507,12 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates POST /v4.0/db-instances/{dbInstanceId}/certificates/upload ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceCertificate.Export | 인증서 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1447,6 +1573,12 @@ POST /v4.0/db-instances/{dbInstanceId}/certificates/upload GET /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.List | DB 스키마 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1497,6 +1629,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas POST /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.Create | DB 스키마 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1547,6 +1685,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-schemas DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.Delete | DB 스키마 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1587,6 +1731,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} GET /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.List | DB 사용자 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1647,6 +1797,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users POST /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Create | DB 사용자 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1707,6 +1863,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-users DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Delete | DB 사용자 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1747,6 +1909,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Modify | DB 사용자 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1804,6 +1972,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | DB 인스턴스 삭제 보호 설정 변경 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1835,6 +2009,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1855,6 +2035,12 @@ POST /v4.0/db-instances/{dbInstanceId}/force-restart GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 고가용성 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1900,6 +2086,12 @@ GET /v4.0/db-instances/{dbInstanceId}/high-availability PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Modify | 고가용성 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1958,6 +2150,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/high-availability POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Pause | 고가용성 일시 중지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1997,6 +2195,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Repair | 고가용성 복구하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2036,6 +2240,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Resume | 고가용성 다시 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2075,6 +2285,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Split | 고가용성 분리하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2114,6 +2330,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/split GET /v4.0/db-instances/{dbInstanceId}/log-files ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.List | 로그 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2164,6 +2386,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files POST /v4.0/db-instances/{dbInstanceId}/log-files/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.Export | 로그 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2224,6 +2452,12 @@ POST /v4.0/db-instances/{dbInstanceId}/log-files/export GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.Get | 로그 파일 내용 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2264,6 +2498,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.List | DB 인스턴스 유지 관리 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2338,6 +2578,12 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Execute | DB 인스턴스 유지 관리 즉시 실행하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2396,6 +2642,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Update | DB 인스턴스 유지 관리 예약하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2435,6 +2687,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Delete | DB 인스턴스 유지 관리 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2456,6 +2714,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} GET /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 네트워크 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2515,6 +2779,12 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 네트워크 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2565,6 +2835,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/network-info POST /v4.0/db-instances/{dbInstanceId}/promote ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Promote | DB 인스턴스 승격하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2604,6 +2880,12 @@ POST /v4.0/db-instances/{dbInstanceId}/promote POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Rebuild | DB 인스턴스 재구축하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2643,6 +2925,12 @@ POST /v4.0/db-instances/{dbInstanceId}/rebuild POST /v4.0/db-instances/{dbInstanceId}/replicate ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Replicate | DB 인스턴스 복제하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2760,6 +3048,12 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate POST /v4.0/db-instances/{dbInstanceId}/restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Restart | DB 인스턴스 재시작하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2816,6 +3110,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restart GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | DB 인스턴스 복원 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2896,6 +3196,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 복원될 마지막 쿼리 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2937,6 +3243,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query POST /v4.0/db-instances/{dbInstanceId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Restore | DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3101,6 +3413,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restore POST /v4.0/db-instances/{dbInstanceId}/start ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Start | DB 인스턴스 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3140,6 +3458,12 @@ POST /v4.0/db-instances/{dbInstanceId}/start POST /v4.0/db-instances/{dbInstanceId}/stop ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Stop | DB 인스턴스 정지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3179,6 +3503,12 @@ POST /v4.0/db-instances/{dbInstanceId}/stop GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 스토리지 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3233,6 +3563,12 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 스토리지 정보 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3308,6 +3644,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/storage-info GET /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.List | 백업 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3368,6 +3710,12 @@ GET /v4.0/backups POST /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Create | 백업 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3423,6 +3771,12 @@ POST /v4.0/backups DELETE /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Delete | 백업 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3462,6 +3816,12 @@ DELETE /v4.0/backups/{backupId} GET /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Get | 백업 단건 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3537,6 +3897,12 @@ GET /v4.0/backups/{backupId} POST /v4.0/backups/{backupId}/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Export | 백업 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3595,6 +3961,12 @@ POST /v4.0/backups/{backupId}/export POST /v4.0/backups/{backupId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Restore | 백업 복원하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3735,6 +4107,12 @@ POST /v4.0/backups/{backupId}/restore GET /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3787,6 +4165,12 @@ GET /v4.0/db-security-groups POST /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3860,6 +4244,12 @@ POST /v4.0/db-security-groups DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3880,6 +4270,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} GET /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3957,6 +4353,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3990,6 +4392,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Delete | DB 보안 그룹 규칙 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4030,6 +4438,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4095,6 +4509,12 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4163,6 +4583,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} GET /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.List | 파라미터 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4219,6 +4645,12 @@ GET /v4.0/parameter-groups POST /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Create | 파라미터 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4272,6 +4704,12 @@ POST /v4.0/parameter-groups DELETE /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4292,6 +4730,12 @@ DELETE /v4.0/parameter-groups/{parameterGroupId} GET /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Get | 파라미터 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4366,6 +4810,12 @@ GET /v4.0/parameter-groups/{parameterGroupId} PUT /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4399,6 +4849,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId} POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Copy | 파라미터 그룹 복사하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4451,6 +4907,12 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Modify | 파라미터 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4489,6 +4951,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4511,6 +4979,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset GET /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.List | 사용자 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4559,6 +5033,12 @@ GET /v4.0/user-groups POST /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Create | 사용자 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4612,6 +5092,12 @@ POST /v4.0/user-groups DELETE /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Delete | 사용자 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4632,6 +5118,12 @@ DELETE /v4.0/user-groups/{userGroupId} GET /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Get | 사용자 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4686,6 +5178,12 @@ GET /v4.0/user-groups/{userGroupId} PUT /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Modify | 사용자 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4723,6 +5221,12 @@ PUT /v4.0/user-groups/{userGroupId} GET /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.List | 알림 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4775,6 +5279,12 @@ GET /v4.0/notification-groups POST /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Create | 알림 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4834,6 +5344,12 @@ POST /v4.0/notification-groups DELETE /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Delete | 알림 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4854,6 +5370,12 @@ DELETE /v4.0/notification-groups/{notificationGroupId} GET /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Get | 알림 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4923,6 +5445,12 @@ GET /v4.0/notification-groups/{notificationGroupId} PUT /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Modify | 알림 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4966,6 +5494,12 @@ PUT /v4.0/notification-groups/{notificationGroupId} GET /v4.0/metric-statistics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Metric.List | 통계 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4982,6 +5516,12 @@ GET /v4.0/metric-statistics GET /v4.0/metrics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Metric.List | Metric 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5039,6 +5579,12 @@ GET /v4.0/metrics GET /v4.0/event-codes ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Event.List | 구독 가능한 이벤트 코드 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5081,6 +5627,12 @@ GET /v4.0/event-codes GET /v4.0/events ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Event.List | 이벤트 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5142,6 +5694,12 @@ GET /v4.0/events GET /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.List | 이벤트 구독 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5209,6 +5767,12 @@ GET /v4.0/event-subscriptions POST /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Create | 이벤트 구독 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5279,6 +5843,12 @@ POST /v4.0/event-subscriptions DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Delete | 이벤트 구독 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5299,6 +5869,12 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} PUT /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Modify | 이벤트 구독 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5353,6 +5929,12 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} GET /v4.0/availability-zones ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:AvailabilityZone.List | 가용성 영역 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. diff --git a/ko/api-guide-v4.0-ngoic.md b/ko/api-guide-v4.0-ngoic.md index 1a1f8dff..548af449 100644 --- a/ko/api-guide-v4.0-ngoic.md +++ b/ko/api-guide-v4.0-ngoic.md @@ -96,6 +96,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 GET /v4.0/project/members ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Project.Get | 프로젝트 멤버 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -142,6 +148,12 @@ GET /v4.0/project/members GET /v4.0/project/regions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Project.Get | 리전 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -186,6 +198,12 @@ GET /v4.0/project/regions GET /v4.0/db-flavors ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbFlavor.List | DB 인스턴스 사양 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -234,6 +252,12 @@ GET /v4.0/db-flavors GET /v4.0/network/subnets ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Network.List | 서브넷 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -284,6 +308,12 @@ GET /v4.0/network/subnets GET /v4.0/db-versions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbVersion.List | DB 엔진 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -330,6 +360,12 @@ GET /v4.0/db-versions GET /v4.0/storage-types ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Storage.List | 스토리지 타입 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -384,6 +420,12 @@ GET /v4.0/storage-types GET /v4.0/jobs/{jobId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Job.Get | 작업 정보 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -440,6 +482,12 @@ GET /v4.0/jobs/{jobId} GET /v4.0/db-instance-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -486,6 +534,12 @@ GET /v4.0/db-instance-groups GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -589,6 +643,12 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.List | DB 인스턴스 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -649,6 +709,12 @@ GET /v4.0/db-instances POST /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Create | DB 인스턴스 생성하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -787,6 +853,12 @@ POST /v4.0/db-instances POST /v4.0/db-instances/restore-from-obs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.RestoreFromObs | 오브젝트 스토리지를 이용한 DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -930,6 +1002,12 @@ POST /v4.0/db-instances/restore-from-obs DELETE /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Delete | DB 인스턴스 삭제하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -980,6 +1058,12 @@ DELETE /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1059,6 +1143,12 @@ GET /v4.0/db-instances/{dbInstanceId} PUT /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1135,6 +1225,12 @@ PUT /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 백업 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1191,6 +1287,12 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info PUT /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 백업 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1258,6 +1360,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info GET /v4.0/db-instances/{dbInstanceId}/binlogs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceBinLog.List | 바이너리 로그 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1306,6 +1414,12 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceBinLog.Purge | 바이너리 로그 삭제 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1337,6 +1451,12 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge GET /v4.0/db-instances/{dbInstanceId}/certificates ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceCertificate.List | 인증서 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1387,6 +1507,12 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates POST /v4.0/db-instances/{dbInstanceId}/certificates/upload ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceCertificate.Export | 인증서 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1447,6 +1573,12 @@ POST /v4.0/db-instances/{dbInstanceId}/certificates/upload GET /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.List | DB 스키마 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1497,6 +1629,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas POST /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.Create | DB 스키마 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1547,6 +1685,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-schemas DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.Delete | DB 스키마 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1587,6 +1731,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} GET /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.List | DB 사용자 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1647,6 +1797,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users POST /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Create | DB 사용자 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1707,6 +1863,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-users DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Delete | DB 사용자 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1747,6 +1909,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Modify | DB 사용자 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1804,6 +1972,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | DB 인스턴스 삭제 보호 설정 변경 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1835,6 +2009,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1855,6 +2035,12 @@ POST /v4.0/db-instances/{dbInstanceId}/force-restart GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 고가용성 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1900,6 +2086,12 @@ GET /v4.0/db-instances/{dbInstanceId}/high-availability PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Modify | 고가용성 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1958,6 +2150,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/high-availability POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Pause | 고가용성 일시 중지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1997,6 +2195,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Repair | 고가용성 복구하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2036,6 +2240,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Resume | 고가용성 다시 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2075,6 +2285,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Split | 고가용성 분리하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2114,6 +2330,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/split GET /v4.0/db-instances/{dbInstanceId}/log-files ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.List | 로그 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2164,6 +2386,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files POST /v4.0/db-instances/{dbInstanceId}/log-files/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.Export | 로그 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2224,6 +2452,12 @@ POST /v4.0/db-instances/{dbInstanceId}/log-files/export GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.Get | 로그 파일 내용 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2264,6 +2498,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.List | DB 인스턴스 유지 관리 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2338,6 +2578,12 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Execute | DB 인스턴스 유지 관리 즉시 실행하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2396,6 +2642,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Update | DB 인스턴스 유지 관리 예약하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2435,6 +2687,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Delete | DB 인스턴스 유지 관리 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2456,6 +2714,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} GET /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 네트워크 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2515,6 +2779,12 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 네트워크 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2565,6 +2835,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/network-info POST /v4.0/db-instances/{dbInstanceId}/promote ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Promote | DB 인스턴스 승격하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2604,6 +2880,12 @@ POST /v4.0/db-instances/{dbInstanceId}/promote POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Rebuild | DB 인스턴스 재구축하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2643,6 +2925,12 @@ POST /v4.0/db-instances/{dbInstanceId}/rebuild POST /v4.0/db-instances/{dbInstanceId}/replicate ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Replicate | DB 인스턴스 복제하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2760,6 +3048,12 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate POST /v4.0/db-instances/{dbInstanceId}/restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Restart | DB 인스턴스 재시작하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2816,6 +3110,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restart GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | DB 인스턴스 복원 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2896,6 +3196,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 복원될 마지막 쿼리 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2937,6 +3243,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query POST /v4.0/db-instances/{dbInstanceId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Restore | DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3101,6 +3413,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restore POST /v4.0/db-instances/{dbInstanceId}/start ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Start | DB 인스턴스 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3140,6 +3458,12 @@ POST /v4.0/db-instances/{dbInstanceId}/start POST /v4.0/db-instances/{dbInstanceId}/stop ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Stop | DB 인스턴스 정지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3179,6 +3503,12 @@ POST /v4.0/db-instances/{dbInstanceId}/stop GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 스토리지 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3233,6 +3563,12 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 스토리지 정보 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3308,6 +3644,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/storage-info GET /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.List | 백업 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3368,6 +3710,12 @@ GET /v4.0/backups POST /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Create | 백업 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3423,6 +3771,12 @@ POST /v4.0/backups DELETE /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Delete | 백업 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3462,6 +3816,12 @@ DELETE /v4.0/backups/{backupId} GET /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Get | 백업 단건 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3537,6 +3897,12 @@ GET /v4.0/backups/{backupId} POST /v4.0/backups/{backupId}/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Export | 백업 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3595,6 +3961,12 @@ POST /v4.0/backups/{backupId}/export POST /v4.0/backups/{backupId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Restore | 백업 복원하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3735,6 +4107,12 @@ POST /v4.0/backups/{backupId}/restore GET /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3787,6 +4165,12 @@ GET /v4.0/db-security-groups POST /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3860,6 +4244,12 @@ POST /v4.0/db-security-groups DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3880,6 +4270,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} GET /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3957,6 +4353,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3990,6 +4392,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Delete | DB 보안 그룹 규칙 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4030,6 +4438,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4095,6 +4509,12 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4163,6 +4583,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} GET /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.List | 파라미터 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4219,6 +4645,12 @@ GET /v4.0/parameter-groups POST /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Create | 파라미터 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4272,6 +4704,12 @@ POST /v4.0/parameter-groups DELETE /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4292,6 +4730,12 @@ DELETE /v4.0/parameter-groups/{parameterGroupId} GET /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Get | 파라미터 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4366,6 +4810,12 @@ GET /v4.0/parameter-groups/{parameterGroupId} PUT /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4399,6 +4849,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId} POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Copy | 파라미터 그룹 복사하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4451,6 +4907,12 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Modify | 파라미터 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4489,6 +4951,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4511,6 +4979,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset GET /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.List | 사용자 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4559,6 +5033,12 @@ GET /v4.0/user-groups POST /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Create | 사용자 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4612,6 +5092,12 @@ POST /v4.0/user-groups DELETE /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Delete | 사용자 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4632,6 +5118,12 @@ DELETE /v4.0/user-groups/{userGroupId} GET /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Get | 사용자 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4686,6 +5178,12 @@ GET /v4.0/user-groups/{userGroupId} PUT /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Modify | 사용자 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4723,6 +5221,12 @@ PUT /v4.0/user-groups/{userGroupId} GET /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.List | 알림 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4775,6 +5279,12 @@ GET /v4.0/notification-groups POST /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Create | 알림 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4834,6 +5344,12 @@ POST /v4.0/notification-groups DELETE /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Delete | 알림 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4854,6 +5370,12 @@ DELETE /v4.0/notification-groups/{notificationGroupId} GET /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Get | 알림 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4923,6 +5445,12 @@ GET /v4.0/notification-groups/{notificationGroupId} PUT /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Modify | 알림 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4966,6 +5494,12 @@ PUT /v4.0/notification-groups/{notificationGroupId} GET /v4.0/metric-statistics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Metric.List | 통계 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4982,6 +5516,12 @@ GET /v4.0/metric-statistics GET /v4.0/metrics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Metric.List | Metric 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5039,6 +5579,12 @@ GET /v4.0/metrics GET /v4.0/event-codes ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Event.List | 구독 가능한 이벤트 코드 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5081,6 +5627,12 @@ GET /v4.0/event-codes GET /v4.0/events ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Event.List | 이벤트 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5142,6 +5694,12 @@ GET /v4.0/events GET /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.List | 이벤트 구독 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5209,6 +5767,12 @@ GET /v4.0/event-subscriptions POST /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Create | 이벤트 구독 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5279,6 +5843,12 @@ POST /v4.0/event-subscriptions DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Delete | 이벤트 구독 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5299,6 +5869,12 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} PUT /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Modify | 이벤트 구독 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5353,6 +5929,12 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} GET /v4.0/availability-zones ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:AvailabilityZone.List | 가용성 영역 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. diff --git a/ko/api-guide-v4.0-ngovc.md b/ko/api-guide-v4.0-ngovc.md index 6911efdc..93d36d3c 100644 --- a/ko/api-guide-v4.0-ngovc.md +++ b/ko/api-guide-v4.0-ngovc.md @@ -96,6 +96,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 GET /v4.0/project/members ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Project.Get | 프로젝트 멤버 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -142,6 +148,12 @@ GET /v4.0/project/members GET /v4.0/project/regions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Project.Get | 리전 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -186,6 +198,12 @@ GET /v4.0/project/regions GET /v4.0/db-flavors ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbFlavor.List | DB 인스턴스 사양 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -234,6 +252,12 @@ GET /v4.0/db-flavors GET /v4.0/network/subnets ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Network.List | 서브넷 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -284,6 +308,12 @@ GET /v4.0/network/subnets GET /v4.0/db-versions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbVersion.List | DB 엔진 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -330,6 +360,12 @@ GET /v4.0/db-versions GET /v4.0/storage-types ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Storage.List | 스토리지 타입 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -384,6 +420,12 @@ GET /v4.0/storage-types GET /v4.0/jobs/{jobId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Job.Get | 작업 정보 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -440,6 +482,12 @@ GET /v4.0/jobs/{jobId} GET /v4.0/db-instance-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -486,6 +534,12 @@ GET /v4.0/db-instance-groups GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -589,6 +643,12 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.List | DB 인스턴스 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -649,6 +709,12 @@ GET /v4.0/db-instances POST /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Create | DB 인스턴스 생성하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -787,6 +853,12 @@ POST /v4.0/db-instances POST /v4.0/db-instances/restore-from-obs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.RestoreFromObs | 오브젝트 스토리지를 이용한 DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -930,6 +1002,12 @@ POST /v4.0/db-instances/restore-from-obs DELETE /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Delete | DB 인스턴스 삭제하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -980,6 +1058,12 @@ DELETE /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1059,6 +1143,12 @@ GET /v4.0/db-instances/{dbInstanceId} PUT /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1135,6 +1225,12 @@ PUT /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 백업 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1191,6 +1287,12 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info PUT /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 백업 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1258,6 +1360,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info GET /v4.0/db-instances/{dbInstanceId}/binlogs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceBinLog.List | 바이너리 로그 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1306,6 +1414,12 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceBinLog.Purge | 바이너리 로그 삭제 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1337,6 +1451,12 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge GET /v4.0/db-instances/{dbInstanceId}/certificates ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceCertificate.List | 인증서 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1387,6 +1507,12 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates POST /v4.0/db-instances/{dbInstanceId}/certificates/upload ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceCertificate.Export | 인증서 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1447,6 +1573,12 @@ POST /v4.0/db-instances/{dbInstanceId}/certificates/upload GET /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.List | DB 스키마 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1497,6 +1629,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas POST /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.Create | DB 스키마 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1547,6 +1685,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-schemas DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.Delete | DB 스키마 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1587,6 +1731,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} GET /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.List | DB 사용자 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1647,6 +1797,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users POST /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Create | DB 사용자 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1707,6 +1863,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-users DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Delete | DB 사용자 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1747,6 +1909,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Modify | DB 사용자 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1804,6 +1972,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | DB 인스턴스 삭제 보호 설정 변경 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1835,6 +2009,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1855,6 +2035,12 @@ POST /v4.0/db-instances/{dbInstanceId}/force-restart GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 고가용성 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1900,6 +2086,12 @@ GET /v4.0/db-instances/{dbInstanceId}/high-availability PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Modify | 고가용성 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1958,6 +2150,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/high-availability POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Pause | 고가용성 일시 중지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1997,6 +2195,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Repair | 고가용성 복구하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2036,6 +2240,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Resume | 고가용성 다시 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2075,6 +2285,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Split | 고가용성 분리하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2114,6 +2330,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/split GET /v4.0/db-instances/{dbInstanceId}/log-files ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.List | 로그 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2164,6 +2386,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files POST /v4.0/db-instances/{dbInstanceId}/log-files/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.Export | 로그 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2224,6 +2452,12 @@ POST /v4.0/db-instances/{dbInstanceId}/log-files/export GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.Get | 로그 파일 내용 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2264,6 +2498,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.List | DB 인스턴스 유지 관리 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2338,6 +2578,12 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Execute | DB 인스턴스 유지 관리 즉시 실행하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2396,6 +2642,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Update | DB 인스턴스 유지 관리 예약하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2435,6 +2687,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Delete | DB 인스턴스 유지 관리 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2456,6 +2714,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} GET /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 네트워크 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2515,6 +2779,12 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 네트워크 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2565,6 +2835,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/network-info POST /v4.0/db-instances/{dbInstanceId}/promote ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Promote | DB 인스턴스 승격하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2604,6 +2880,12 @@ POST /v4.0/db-instances/{dbInstanceId}/promote POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Rebuild | DB 인스턴스 재구축하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2643,6 +2925,12 @@ POST /v4.0/db-instances/{dbInstanceId}/rebuild POST /v4.0/db-instances/{dbInstanceId}/replicate ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Replicate | DB 인스턴스 복제하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2760,6 +3048,12 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate POST /v4.0/db-instances/{dbInstanceId}/restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Restart | DB 인스턴스 재시작하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2816,6 +3110,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restart GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | DB 인스턴스 복원 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2896,6 +3196,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 복원될 마지막 쿼리 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2937,6 +3243,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query POST /v4.0/db-instances/{dbInstanceId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Restore | DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3101,6 +3413,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restore POST /v4.0/db-instances/{dbInstanceId}/start ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Start | DB 인스턴스 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3140,6 +3458,12 @@ POST /v4.0/db-instances/{dbInstanceId}/start POST /v4.0/db-instances/{dbInstanceId}/stop ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Stop | DB 인스턴스 정지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3179,6 +3503,12 @@ POST /v4.0/db-instances/{dbInstanceId}/stop GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 스토리지 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3233,6 +3563,12 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 스토리지 정보 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3308,6 +3644,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/storage-info GET /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.List | 백업 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3368,6 +3710,12 @@ GET /v4.0/backups POST /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Create | 백업 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3423,6 +3771,12 @@ POST /v4.0/backups DELETE /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Delete | 백업 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3462,6 +3816,12 @@ DELETE /v4.0/backups/{backupId} GET /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Get | 백업 단건 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3537,6 +3897,12 @@ GET /v4.0/backups/{backupId} POST /v4.0/backups/{backupId}/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Export | 백업 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3595,6 +3961,12 @@ POST /v4.0/backups/{backupId}/export POST /v4.0/backups/{backupId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Restore | 백업 복원하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3735,6 +4107,12 @@ POST /v4.0/backups/{backupId}/restore GET /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3787,6 +4165,12 @@ GET /v4.0/db-security-groups POST /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3860,6 +4244,12 @@ POST /v4.0/db-security-groups DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3880,6 +4270,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} GET /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3957,6 +4353,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3990,6 +4392,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Delete | DB 보안 그룹 규칙 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4030,6 +4438,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4095,6 +4509,12 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4163,6 +4583,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} GET /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.List | 파라미터 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4219,6 +4645,12 @@ GET /v4.0/parameter-groups POST /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Create | 파라미터 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4272,6 +4704,12 @@ POST /v4.0/parameter-groups DELETE /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4292,6 +4730,12 @@ DELETE /v4.0/parameter-groups/{parameterGroupId} GET /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Get | 파라미터 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4366,6 +4810,12 @@ GET /v4.0/parameter-groups/{parameterGroupId} PUT /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4399,6 +4849,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId} POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Copy | 파라미터 그룹 복사하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4451,6 +4907,12 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Modify | 파라미터 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4489,6 +4951,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4511,6 +4979,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset GET /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.List | 사용자 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4559,6 +5033,12 @@ GET /v4.0/user-groups POST /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Create | 사용자 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4612,6 +5092,12 @@ POST /v4.0/user-groups DELETE /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Delete | 사용자 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4632,6 +5118,12 @@ DELETE /v4.0/user-groups/{userGroupId} GET /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Get | 사용자 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4686,6 +5178,12 @@ GET /v4.0/user-groups/{userGroupId} PUT /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Modify | 사용자 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4723,6 +5221,12 @@ PUT /v4.0/user-groups/{userGroupId} GET /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.List | 알림 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4775,6 +5279,12 @@ GET /v4.0/notification-groups POST /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Create | 알림 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4834,6 +5344,12 @@ POST /v4.0/notification-groups DELETE /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Delete | 알림 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4854,6 +5370,12 @@ DELETE /v4.0/notification-groups/{notificationGroupId} GET /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Get | 알림 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4923,6 +5445,12 @@ GET /v4.0/notification-groups/{notificationGroupId} PUT /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Modify | 알림 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4966,6 +5494,12 @@ PUT /v4.0/notification-groups/{notificationGroupId} GET /v4.0/metric-statistics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Metric.List | 통계 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4982,6 +5516,12 @@ GET /v4.0/metric-statistics GET /v4.0/metrics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Metric.List | Metric 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5039,6 +5579,12 @@ GET /v4.0/metrics GET /v4.0/event-codes ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Event.List | 구독 가능한 이벤트 코드 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5081,6 +5627,12 @@ GET /v4.0/event-codes GET /v4.0/events ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Event.List | 이벤트 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5142,6 +5694,12 @@ GET /v4.0/events GET /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.List | 이벤트 구독 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5209,6 +5767,12 @@ GET /v4.0/event-subscriptions POST /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Create | 이벤트 구독 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5279,6 +5843,12 @@ POST /v4.0/event-subscriptions DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Delete | 이벤트 구독 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5299,6 +5869,12 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} PUT /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Modify | 이벤트 구독 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5353,6 +5929,12 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} GET /v4.0/availability-zones ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:AvailabilityZone.List | 가용성 영역 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. diff --git a/ko/api-guide-v4.0-ngsc.md b/ko/api-guide-v4.0-ngsc.md index 63b087fe..08cdf9d8 100644 --- a/ko/api-guide-v4.0-ngsc.md +++ b/ko/api-guide-v4.0-ngsc.md @@ -96,6 +96,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 GET /v4.0/project/members ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Project.Get | 프로젝트 멤버 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -142,6 +148,12 @@ GET /v4.0/project/members GET /v4.0/project/regions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Project.Get | 리전 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -186,6 +198,12 @@ GET /v4.0/project/regions GET /v4.0/db-flavors ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbFlavor.List | DB 인스턴스 사양 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -234,6 +252,12 @@ GET /v4.0/db-flavors GET /v4.0/network/subnets ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Network.List | 서브넷 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -284,6 +308,12 @@ GET /v4.0/network/subnets GET /v4.0/db-versions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbVersion.List | DB 엔진 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -330,6 +360,12 @@ GET /v4.0/db-versions GET /v4.0/storage-types ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Storage.List | 스토리지 타입 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -384,6 +420,12 @@ GET /v4.0/storage-types GET /v4.0/jobs/{jobId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Job.Get | 작업 정보 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -440,6 +482,12 @@ GET /v4.0/jobs/{jobId} GET /v4.0/db-instance-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -486,6 +534,12 @@ GET /v4.0/db-instance-groups GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -589,6 +643,12 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.List | DB 인스턴스 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -649,6 +709,12 @@ GET /v4.0/db-instances POST /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Create | DB 인스턴스 생성하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -787,6 +853,12 @@ POST /v4.0/db-instances POST /v4.0/db-instances/restore-from-obs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.RestoreFromObs | 오브젝트 스토리지를 이용한 DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -930,6 +1002,12 @@ POST /v4.0/db-instances/restore-from-obs DELETE /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Delete | DB 인스턴스 삭제하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -980,6 +1058,12 @@ DELETE /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1059,6 +1143,12 @@ GET /v4.0/db-instances/{dbInstanceId} PUT /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1135,6 +1225,12 @@ PUT /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 백업 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1191,6 +1287,12 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info PUT /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 백업 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1258,6 +1360,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info GET /v4.0/db-instances/{dbInstanceId}/binlogs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceBinLog.List | 바이너리 로그 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1306,6 +1414,12 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceBinLog.Purge | 바이너리 로그 삭제 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1337,6 +1451,12 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge GET /v4.0/db-instances/{dbInstanceId}/certificates ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceCertificate.List | 인증서 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1387,6 +1507,12 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates POST /v4.0/db-instances/{dbInstanceId}/certificates/upload ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceCertificate.Export | 인증서 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1447,6 +1573,12 @@ POST /v4.0/db-instances/{dbInstanceId}/certificates/upload GET /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.List | DB 스키마 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1497,6 +1629,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas POST /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.Create | DB 스키마 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1547,6 +1685,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-schemas DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.Delete | DB 스키마 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1587,6 +1731,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} GET /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.List | DB 사용자 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1647,6 +1797,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users POST /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Create | DB 사용자 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1707,6 +1863,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-users DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Delete | DB 사용자 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1747,6 +1909,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Modify | DB 사용자 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1804,6 +1972,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | DB 인스턴스 삭제 보호 설정 변경 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1835,6 +2009,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1855,6 +2035,12 @@ POST /v4.0/db-instances/{dbInstanceId}/force-restart GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 고가용성 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1900,6 +2086,12 @@ GET /v4.0/db-instances/{dbInstanceId}/high-availability PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Modify | 고가용성 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1958,6 +2150,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/high-availability POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Pause | 고가용성 일시 중지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1997,6 +2195,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Repair | 고가용성 복구하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2036,6 +2240,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Resume | 고가용성 다시 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2075,6 +2285,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Split | 고가용성 분리하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2114,6 +2330,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/split GET /v4.0/db-instances/{dbInstanceId}/log-files ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.List | 로그 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2164,6 +2386,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files POST /v4.0/db-instances/{dbInstanceId}/log-files/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.Export | 로그 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2224,6 +2452,12 @@ POST /v4.0/db-instances/{dbInstanceId}/log-files/export GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.Get | 로그 파일 내용 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2264,6 +2498,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.List | DB 인스턴스 유지 관리 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2338,6 +2578,12 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Execute | DB 인스턴스 유지 관리 즉시 실행하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2396,6 +2642,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Update | DB 인스턴스 유지 관리 예약하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2435,6 +2687,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Delete | DB 인스턴스 유지 관리 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2456,6 +2714,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} GET /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 네트워크 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2515,6 +2779,12 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 네트워크 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2565,6 +2835,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/network-info POST /v4.0/db-instances/{dbInstanceId}/promote ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Promote | DB 인스턴스 승격하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2604,6 +2880,12 @@ POST /v4.0/db-instances/{dbInstanceId}/promote POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Rebuild | DB 인스턴스 재구축하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2643,6 +2925,12 @@ POST /v4.0/db-instances/{dbInstanceId}/rebuild POST /v4.0/db-instances/{dbInstanceId}/replicate ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Replicate | DB 인스턴스 복제하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2760,6 +3048,12 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate POST /v4.0/db-instances/{dbInstanceId}/restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Restart | DB 인스턴스 재시작하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2816,6 +3110,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restart GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | DB 인스턴스 복원 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2896,6 +3196,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 복원될 마지막 쿼리 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2937,6 +3243,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query POST /v4.0/db-instances/{dbInstanceId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Restore | DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3101,6 +3413,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restore POST /v4.0/db-instances/{dbInstanceId}/start ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Start | DB 인스턴스 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3140,6 +3458,12 @@ POST /v4.0/db-instances/{dbInstanceId}/start POST /v4.0/db-instances/{dbInstanceId}/stop ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Stop | DB 인스턴스 정지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3179,6 +3503,12 @@ POST /v4.0/db-instances/{dbInstanceId}/stop GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 스토리지 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3233,6 +3563,12 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 스토리지 정보 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3308,6 +3644,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/storage-info GET /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.List | 백업 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3368,6 +3710,12 @@ GET /v4.0/backups POST /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Create | 백업 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3423,6 +3771,12 @@ POST /v4.0/backups DELETE /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Delete | 백업 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3462,6 +3816,12 @@ DELETE /v4.0/backups/{backupId} GET /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Get | 백업 단건 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3537,6 +3897,12 @@ GET /v4.0/backups/{backupId} POST /v4.0/backups/{backupId}/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Export | 백업 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3595,6 +3961,12 @@ POST /v4.0/backups/{backupId}/export POST /v4.0/backups/{backupId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Restore | 백업 복원하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3735,6 +4107,12 @@ POST /v4.0/backups/{backupId}/restore GET /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3787,6 +4165,12 @@ GET /v4.0/db-security-groups POST /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3860,6 +4244,12 @@ POST /v4.0/db-security-groups DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3880,6 +4270,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} GET /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3957,6 +4353,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3990,6 +4392,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Delete | DB 보안 그룹 규칙 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4030,6 +4438,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4095,6 +4509,12 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4163,6 +4583,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} GET /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.List | 파라미터 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4219,6 +4645,12 @@ GET /v4.0/parameter-groups POST /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Create | 파라미터 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4272,6 +4704,12 @@ POST /v4.0/parameter-groups DELETE /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4292,6 +4730,12 @@ DELETE /v4.0/parameter-groups/{parameterGroupId} GET /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Get | 파라미터 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4366,6 +4810,12 @@ GET /v4.0/parameter-groups/{parameterGroupId} PUT /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4399,6 +4849,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId} POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Copy | 파라미터 그룹 복사하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4451,6 +4907,12 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Modify | 파라미터 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4489,6 +4951,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4511,6 +4979,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset GET /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.List | 사용자 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4559,6 +5033,12 @@ GET /v4.0/user-groups POST /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Create | 사용자 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4612,6 +5092,12 @@ POST /v4.0/user-groups DELETE /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Delete | 사용자 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4632,6 +5118,12 @@ DELETE /v4.0/user-groups/{userGroupId} GET /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Get | 사용자 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4686,6 +5178,12 @@ GET /v4.0/user-groups/{userGroupId} PUT /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Modify | 사용자 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4723,6 +5221,12 @@ PUT /v4.0/user-groups/{userGroupId} GET /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.List | 알림 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4775,6 +5279,12 @@ GET /v4.0/notification-groups POST /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Create | 알림 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4834,6 +5344,12 @@ POST /v4.0/notification-groups DELETE /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Delete | 알림 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4854,6 +5370,12 @@ DELETE /v4.0/notification-groups/{notificationGroupId} GET /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Get | 알림 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4923,6 +5445,12 @@ GET /v4.0/notification-groups/{notificationGroupId} PUT /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Modify | 알림 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4966,6 +5494,12 @@ PUT /v4.0/notification-groups/{notificationGroupId} GET /v4.0/metric-statistics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Metric.List | 통계 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4982,6 +5516,12 @@ GET /v4.0/metric-statistics GET /v4.0/metrics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Metric.List | Metric 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5039,6 +5579,12 @@ GET /v4.0/metrics GET /v4.0/event-codes ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Event.List | 구독 가능한 이벤트 코드 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5081,6 +5627,12 @@ GET /v4.0/event-codes GET /v4.0/events ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Event.List | 이벤트 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5142,6 +5694,12 @@ GET /v4.0/events GET /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.List | 이벤트 구독 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5209,6 +5767,12 @@ GET /v4.0/event-subscriptions POST /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Create | 이벤트 구독 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5279,6 +5843,12 @@ POST /v4.0/event-subscriptions DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Delete | 이벤트 구독 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5299,6 +5869,12 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} PUT /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Modify | 이벤트 구독 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5353,6 +5929,12 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} GET /v4.0/availability-zones ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:AvailabilityZone.List | 가용성 영역 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. diff --git a/ko/api-guide-v4.0-ninc.md b/ko/api-guide-v4.0-ninc.md index 19954140..cc788410 100644 --- a/ko/api-guide-v4.0-ninc.md +++ b/ko/api-guide-v4.0-ninc.md @@ -96,6 +96,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 GET /v4.0/project/members ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Project.Get | 프로젝트 멤버 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -142,6 +148,12 @@ GET /v4.0/project/members GET /v4.0/project/regions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Project.Get | 리전 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -186,6 +198,12 @@ GET /v4.0/project/regions GET /v4.0/db-flavors ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbFlavor.List | DB 인스턴스 사양 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -234,6 +252,12 @@ GET /v4.0/db-flavors GET /v4.0/network/subnets ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Network.List | 서브넷 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -284,6 +308,12 @@ GET /v4.0/network/subnets GET /v4.0/db-versions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbVersion.List | DB 엔진 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -330,6 +360,12 @@ GET /v4.0/db-versions GET /v4.0/storage-types ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Storage.List | 스토리지 타입 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -384,6 +420,12 @@ GET /v4.0/storage-types GET /v4.0/jobs/{jobId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Job.Get | 작업 정보 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -440,6 +482,12 @@ GET /v4.0/jobs/{jobId} GET /v4.0/db-instance-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -486,6 +534,12 @@ GET /v4.0/db-instance-groups GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -589,6 +643,12 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.List | DB 인스턴스 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -649,6 +709,12 @@ GET /v4.0/db-instances POST /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Create | DB 인스턴스 생성하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -787,6 +853,12 @@ POST /v4.0/db-instances POST /v4.0/db-instances/restore-from-obs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.RestoreFromObs | 오브젝트 스토리지를 이용한 DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -930,6 +1002,12 @@ POST /v4.0/db-instances/restore-from-obs DELETE /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Delete | DB 인스턴스 삭제하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -980,6 +1058,12 @@ DELETE /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1059,6 +1143,12 @@ GET /v4.0/db-instances/{dbInstanceId} PUT /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1135,6 +1225,12 @@ PUT /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 백업 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1191,6 +1287,12 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info PUT /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 백업 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1258,6 +1360,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info GET /v4.0/db-instances/{dbInstanceId}/binlogs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceBinLog.List | 바이너리 로그 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1306,6 +1414,12 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceBinLog.Purge | 바이너리 로그 삭제 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1337,6 +1451,12 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge GET /v4.0/db-instances/{dbInstanceId}/certificates ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceCertificate.List | 인증서 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1387,6 +1507,12 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates POST /v4.0/db-instances/{dbInstanceId}/certificates/upload ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceCertificate.Export | 인증서 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1447,6 +1573,12 @@ POST /v4.0/db-instances/{dbInstanceId}/certificates/upload GET /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.List | DB 스키마 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1497,6 +1629,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas POST /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.Create | DB 스키마 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1547,6 +1685,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-schemas DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.Delete | DB 스키마 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1587,6 +1731,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} GET /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.List | DB 사용자 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1647,6 +1797,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users POST /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Create | DB 사용자 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1707,6 +1863,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-users DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Delete | DB 사용자 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1747,6 +1909,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Modify | DB 사용자 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1804,6 +1972,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | DB 인스턴스 삭제 보호 설정 변경 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1835,6 +2009,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1855,6 +2035,12 @@ POST /v4.0/db-instances/{dbInstanceId}/force-restart GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 고가용성 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1900,6 +2086,12 @@ GET /v4.0/db-instances/{dbInstanceId}/high-availability PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Modify | 고가용성 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1958,6 +2150,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/high-availability POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Pause | 고가용성 일시 중지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1997,6 +2195,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Repair | 고가용성 복구하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2036,6 +2240,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Resume | 고가용성 다시 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2075,6 +2285,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Split | 고가용성 분리하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2114,6 +2330,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/split GET /v4.0/db-instances/{dbInstanceId}/log-files ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.List | 로그 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2164,6 +2386,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files POST /v4.0/db-instances/{dbInstanceId}/log-files/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.Export | 로그 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2224,6 +2452,12 @@ POST /v4.0/db-instances/{dbInstanceId}/log-files/export GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.Get | 로그 파일 내용 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2264,6 +2498,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.List | DB 인스턴스 유지 관리 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2338,6 +2578,12 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Execute | DB 인스턴스 유지 관리 즉시 실행하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2396,6 +2642,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Update | DB 인스턴스 유지 관리 예약하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2435,6 +2687,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Delete | DB 인스턴스 유지 관리 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2456,6 +2714,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} GET /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 네트워크 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2515,6 +2779,12 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 네트워크 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2565,6 +2835,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/network-info POST /v4.0/db-instances/{dbInstanceId}/promote ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Promote | DB 인스턴스 승격하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2604,6 +2880,12 @@ POST /v4.0/db-instances/{dbInstanceId}/promote POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Rebuild | DB 인스턴스 재구축하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2643,6 +2925,12 @@ POST /v4.0/db-instances/{dbInstanceId}/rebuild POST /v4.0/db-instances/{dbInstanceId}/replicate ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Replicate | DB 인스턴스 복제하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2760,6 +3048,12 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate POST /v4.0/db-instances/{dbInstanceId}/restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Restart | DB 인스턴스 재시작하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2816,6 +3110,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restart GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | DB 인스턴스 복원 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2896,6 +3196,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 복원될 마지막 쿼리 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2937,6 +3243,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query POST /v4.0/db-instances/{dbInstanceId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Restore | DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3101,6 +3413,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restore POST /v4.0/db-instances/{dbInstanceId}/start ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Start | DB 인스턴스 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3140,6 +3458,12 @@ POST /v4.0/db-instances/{dbInstanceId}/start POST /v4.0/db-instances/{dbInstanceId}/stop ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Stop | DB 인스턴스 정지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3179,6 +3503,12 @@ POST /v4.0/db-instances/{dbInstanceId}/stop GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 스토리지 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3233,6 +3563,12 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 스토리지 정보 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3308,6 +3644,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/storage-info GET /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.List | 백업 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3368,6 +3710,12 @@ GET /v4.0/backups POST /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Create | 백업 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3423,6 +3771,12 @@ POST /v4.0/backups DELETE /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Delete | 백업 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3462,6 +3816,12 @@ DELETE /v4.0/backups/{backupId} GET /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Get | 백업 단건 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3537,6 +3897,12 @@ GET /v4.0/backups/{backupId} POST /v4.0/backups/{backupId}/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Export | 백업 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3595,6 +3961,12 @@ POST /v4.0/backups/{backupId}/export POST /v4.0/backups/{backupId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Restore | 백업 복원하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3735,6 +4107,12 @@ POST /v4.0/backups/{backupId}/restore GET /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3787,6 +4165,12 @@ GET /v4.0/db-security-groups POST /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3860,6 +4244,12 @@ POST /v4.0/db-security-groups DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3880,6 +4270,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} GET /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3957,6 +4353,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3990,6 +4392,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Delete | DB 보안 그룹 규칙 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4030,6 +4438,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4095,6 +4509,12 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4163,6 +4583,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} GET /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.List | 파라미터 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4219,6 +4645,12 @@ GET /v4.0/parameter-groups POST /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Create | 파라미터 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4272,6 +4704,12 @@ POST /v4.0/parameter-groups DELETE /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4292,6 +4730,12 @@ DELETE /v4.0/parameter-groups/{parameterGroupId} GET /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Get | 파라미터 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4366,6 +4810,12 @@ GET /v4.0/parameter-groups/{parameterGroupId} PUT /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4399,6 +4849,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId} POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Copy | 파라미터 그룹 복사하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4451,6 +4907,12 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Modify | 파라미터 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4489,6 +4951,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4511,6 +4979,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset GET /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.List | 사용자 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4559,6 +5033,12 @@ GET /v4.0/user-groups POST /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Create | 사용자 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4612,6 +5092,12 @@ POST /v4.0/user-groups DELETE /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Delete | 사용자 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4632,6 +5118,12 @@ DELETE /v4.0/user-groups/{userGroupId} GET /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Get | 사용자 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4686,6 +5178,12 @@ GET /v4.0/user-groups/{userGroupId} PUT /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Modify | 사용자 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4723,6 +5221,12 @@ PUT /v4.0/user-groups/{userGroupId} GET /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.List | 알림 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4775,6 +5279,12 @@ GET /v4.0/notification-groups POST /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Create | 알림 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4834,6 +5344,12 @@ POST /v4.0/notification-groups DELETE /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Delete | 알림 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4854,6 +5370,12 @@ DELETE /v4.0/notification-groups/{notificationGroupId} GET /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Get | 알림 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4923,6 +5445,12 @@ GET /v4.0/notification-groups/{notificationGroupId} PUT /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Modify | 알림 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4966,6 +5494,12 @@ PUT /v4.0/notification-groups/{notificationGroupId} GET /v4.0/metric-statistics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Metric.List | 통계 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4982,6 +5516,12 @@ GET /v4.0/metric-statistics GET /v4.0/metrics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Metric.List | Metric 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5039,6 +5579,12 @@ GET /v4.0/metrics GET /v4.0/event-codes ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Event.List | 구독 가능한 이벤트 코드 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5081,6 +5627,12 @@ GET /v4.0/event-codes GET /v4.0/events ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Event.List | 이벤트 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5142,6 +5694,12 @@ GET /v4.0/events GET /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.List | 이벤트 구독 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5209,6 +5767,12 @@ GET /v4.0/event-subscriptions POST /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Create | 이벤트 구독 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5279,6 +5843,12 @@ POST /v4.0/event-subscriptions DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Delete | 이벤트 구독 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5299,6 +5869,12 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} PUT /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Modify | 이벤트 구독 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5353,6 +5929,12 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} GET /v4.0/availability-zones ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:AvailabilityZone.List | 가용성 영역 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. diff --git a/ko/api-guide-v4.0.md b/ko/api-guide-v4.0.md index ccab11bf..0af00038 100644 --- a/ko/api-guide-v4.0.md +++ b/ko/api-guide-v4.0.md @@ -98,6 +98,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 GET /v4.0/project/members ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Project.Get | 프로젝트 멤버 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -144,6 +150,12 @@ GET /v4.0/project/members GET /v4.0/project/regions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Project.Get | 리전 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -188,6 +200,12 @@ GET /v4.0/project/regions GET /v4.0/db-flavors ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbFlavor.List | DB 인스턴스 사양 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -236,6 +254,12 @@ GET /v4.0/db-flavors GET /v4.0/network/subnets ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Network.List | 서브넷 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -286,6 +310,12 @@ GET /v4.0/network/subnets GET /v4.0/db-versions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbVersion.List | DB 엔진 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -332,6 +362,12 @@ GET /v4.0/db-versions GET /v4.0/storage-types ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Storage.List | 스토리지 타입 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -386,6 +422,12 @@ GET /v4.0/storage-types GET /v4.0/jobs/{jobId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Job.Get | 작업 정보 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -442,6 +484,12 @@ GET /v4.0/jobs/{jobId} GET /v4.0/db-instance-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -488,6 +536,12 @@ GET /v4.0/db-instance-groups GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -591,6 +645,12 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.List | DB 인스턴스 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -651,6 +711,12 @@ GET /v4.0/db-instances POST /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Create | DB 인스턴스 생성하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -789,6 +855,12 @@ POST /v4.0/db-instances POST /v4.0/db-instances/restore-from-obs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.RestoreFromObs | 오브젝트 스토리지를 이용한 DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -932,6 +1004,12 @@ POST /v4.0/db-instances/restore-from-obs DELETE /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Delete | DB 인스턴스 삭제하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -982,6 +1060,12 @@ DELETE /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | DB 인스턴스 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1061,6 +1145,12 @@ GET /v4.0/db-instances/{dbInstanceId} PUT /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | DB 인스턴스 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1137,6 +1227,12 @@ PUT /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 백업 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1193,6 +1289,12 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info PUT /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 백업 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1260,6 +1362,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info GET /v4.0/db-instances/{dbInstanceId}/binlogs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceBinLog.List | 바이너리 로그 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1308,6 +1416,12 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceBinLog.Purge | 바이너리 로그 삭제 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1339,6 +1453,12 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge GET /v4.0/db-instances/{dbInstanceId}/certificates ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceCertificate.List | 인증서 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1389,6 +1509,12 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates POST /v4.0/db-instances/{dbInstanceId}/certificates/upload ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceCertificate.Export | 인증서 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1449,6 +1575,12 @@ POST /v4.0/db-instances/{dbInstanceId}/certificates/upload GET /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.List | DB 스키마 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1499,6 +1631,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas POST /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.Create | DB 스키마 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1549,6 +1687,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-schemas DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceSchema.Delete | DB 스키마 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1589,6 +1733,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} GET /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.List | DB 사용자 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1649,6 +1799,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users POST /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Create | DB 사용자 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1709,6 +1865,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-users DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Delete | DB 사용자 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1749,6 +1911,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceUser.Modify | DB 사용자 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1806,6 +1974,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | DB 인스턴스 삭제 보호 설정 변경 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1837,6 +2011,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1857,6 +2037,12 @@ POST /v4.0/db-instances/{dbInstanceId}/force-restart GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 고가용성 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1902,6 +2088,12 @@ GET /v4.0/db-instances/{dbInstanceId}/high-availability PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Modify | 고가용성 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1960,6 +2152,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/high-availability POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Pause | 고가용성 일시 중지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1999,6 +2197,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Repair | 고가용성 복구하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2038,6 +2242,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Resume | 고가용성 다시 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2077,6 +2287,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:HighAvailability.Split | 고가용성 분리하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2116,6 +2332,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/split GET /v4.0/db-instances/{dbInstanceId}/log-files ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.List | 로그 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2166,6 +2388,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files POST /v4.0/db-instances/{dbInstanceId}/log-files/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.Export | 로그 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2226,6 +2454,12 @@ POST /v4.0/db-instances/{dbInstanceId}/log-files/export GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstanceLog.Get | 로그 파일 내용 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2266,6 +2500,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.List | DB 인스턴스 유지 관리 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2340,6 +2580,12 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Execute | DB 인스턴스 유지 관리 즉시 실행하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2398,6 +2644,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Update | DB 인스턴스 유지 관리 예약하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2437,6 +2689,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Maintenance.Delete | DB 인스턴스 유지 관리 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2458,6 +2716,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} GET /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 네트워크 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2517,6 +2781,12 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 네트워크 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2567,6 +2837,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/network-info POST /v4.0/db-instances/{dbInstanceId}/promote ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Promote | DB 인스턴스 승격하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2606,6 +2882,12 @@ POST /v4.0/db-instances/{dbInstanceId}/promote POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Rebuild | DB 인스턴스 재구축하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2645,6 +2927,12 @@ POST /v4.0/db-instances/{dbInstanceId}/rebuild POST /v4.0/db-instances/{dbInstanceId}/replicate ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Replicate | DB 인스턴스 복제하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2762,6 +3050,12 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate POST /v4.0/db-instances/{dbInstanceId}/restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Restart | DB 인스턴스 재시작하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2818,6 +3112,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restart GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | DB 인스턴스 복원 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2898,6 +3198,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 복원될 마지막 쿼리 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2939,6 +3245,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query POST /v4.0/db-instances/{dbInstanceId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Restore | DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3103,6 +3415,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restore POST /v4.0/db-instances/{dbInstanceId}/start ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Start | DB 인스턴스 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3142,6 +3460,12 @@ POST /v4.0/db-instances/{dbInstanceId}/start POST /v4.0/db-instances/{dbInstanceId}/stop ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Stop | DB 인스턴스 정지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3181,6 +3505,12 @@ POST /v4.0/db-instances/{dbInstanceId}/stop GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Get | 스토리지 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3235,6 +3565,12 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbInstance.Modify | 스토리지 정보 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3310,6 +3646,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/storage-info GET /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.List | 백업 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3370,6 +3712,12 @@ GET /v4.0/backups POST /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Create | 백업 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3425,6 +3773,12 @@ POST /v4.0/backups DELETE /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Delete | 백업 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3464,6 +3818,12 @@ DELETE /v4.0/backups/{backupId} GET /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Get | 백업 단건 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3539,6 +3899,12 @@ GET /v4.0/backups/{backupId} POST /v4.0/backups/{backupId}/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Export | 백업 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3597,6 +3963,12 @@ POST /v4.0/backups/{backupId}/export POST /v4.0/backups/{backupId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Backup.Restore | 백업 복원하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3737,6 +4109,12 @@ POST /v4.0/backups/{backupId}/restore GET /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3789,6 +4167,12 @@ GET /v4.0/db-security-groups POST /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3862,6 +4246,12 @@ POST /v4.0/db-security-groups DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3882,6 +4272,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} GET /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3959,6 +4355,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3992,6 +4394,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Delete | DB 보안 그룹 규칙 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4032,6 +4440,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4097,6 +4511,12 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4165,6 +4585,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} GET /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.List | 파라미터 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4221,6 +4647,12 @@ GET /v4.0/parameter-groups POST /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Create | 파라미터 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4274,6 +4706,12 @@ POST /v4.0/parameter-groups DELETE /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4294,6 +4732,12 @@ DELETE /v4.0/parameter-groups/{parameterGroupId} GET /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Get | 파라미터 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4368,6 +4812,12 @@ GET /v4.0/parameter-groups/{parameterGroupId} PUT /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Modify | 파라미터 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4401,6 +4851,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId} POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Copy | 파라미터 그룹 복사하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4453,6 +4909,12 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Modify | 파라미터 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4491,6 +4953,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4513,6 +4981,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset GET /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.List | 사용자 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4561,6 +5035,12 @@ GET /v4.0/user-groups POST /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Create | 사용자 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4614,6 +5094,12 @@ POST /v4.0/user-groups DELETE /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Delete | 사용자 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4634,6 +5120,12 @@ DELETE /v4.0/user-groups/{userGroupId} GET /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Get | 사용자 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4688,6 +5180,12 @@ GET /v4.0/user-groups/{userGroupId} PUT /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:UserGroup.Modify | 사용자 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4725,6 +5223,12 @@ PUT /v4.0/user-groups/{userGroupId} GET /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.List | 알림 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4777,6 +5281,12 @@ GET /v4.0/notification-groups POST /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Create | 알림 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4836,6 +5346,12 @@ POST /v4.0/notification-groups DELETE /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Delete | 알림 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4856,6 +5372,12 @@ DELETE /v4.0/notification-groups/{notificationGroupId} GET /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Get | 알림 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4925,6 +5447,12 @@ GET /v4.0/notification-groups/{notificationGroupId} PUT /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:NotificationGroup.Modify | 알림 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4968,6 +5496,12 @@ PUT /v4.0/notification-groups/{notificationGroupId} GET /v4.0/metric-statistics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Metric.List | 통계 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4984,6 +5518,12 @@ GET /v4.0/metric-statistics GET /v4.0/metrics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Metric.List | Metric 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5041,6 +5581,12 @@ GET /v4.0/metrics GET /v4.0/event-codes ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Event.List | 구독 가능한 이벤트 코드 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5083,6 +5629,12 @@ GET /v4.0/event-codes GET /v4.0/events ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:Event.List | 이벤트 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5144,6 +5696,12 @@ GET /v4.0/events GET /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.List | 이벤트 구독 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5211,6 +5769,12 @@ GET /v4.0/event-subscriptions POST /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Create | 이벤트 구독 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5281,6 +5845,12 @@ POST /v4.0/event-subscriptions DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Delete | 이벤트 구독 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5301,6 +5871,12 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} PUT /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:EventSubscription.Modify | 이벤트 구독 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5355,6 +5931,12 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} GET /v4.0/availability-zones ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMySQL:AvailabilityZone.List | 가용성 영역 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. diff --git a/mariadb/ko/api-guide-v4.0-gov.md b/mariadb/ko/api-guide-v4.0-gov.md index 3a85650a..4fe4c21d 100644 --- a/mariadb/ko/api-guide-v4.0-gov.md +++ b/mariadb/ko/api-guide-v4.0-gov.md @@ -84,6 +84,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 GET /v4.0/project/members ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Project.Get | 프로젝트 멤버 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -130,6 +136,12 @@ GET /v4.0/project/members GET /v4.0/project/regions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Project.Get | 리전 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -174,6 +186,12 @@ GET /v4.0/project/regions GET /v4.0/db-flavors ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbFlavor.List | DB 인스턴스 사양 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -222,6 +240,12 @@ GET /v4.0/db-flavors GET /v4.0/network/subnets ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Network.List | 서브넷 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -272,6 +296,12 @@ GET /v4.0/network/subnets GET /v4.0/db-versions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbVersion.List | DB 엔진 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -318,6 +348,12 @@ GET /v4.0/db-versions GET /v4.0/storage-types ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Storage.List | 스토리지 타입 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -372,6 +408,12 @@ GET /v4.0/storage-types GET /v4.0/jobs/{jobId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Job.Get | 작업 정보 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -428,6 +470,12 @@ GET /v4.0/jobs/{jobId} GET /v4.0/db-instance-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -474,6 +522,12 @@ GET /v4.0/db-instance-groups GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -577,6 +631,12 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.List | DB 인스턴스 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -637,6 +697,12 @@ GET /v4.0/db-instances POST /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Create | DB 인스턴스 생성하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -775,6 +841,12 @@ POST /v4.0/db-instances POST /v4.0/db-instances/restore-from-obs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.RestoreFromObs | 오브젝트 스토리지를 이용한 DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -918,6 +990,12 @@ POST /v4.0/db-instances/restore-from-obs DELETE /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Delete | DB 인스턴스 삭제하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -968,6 +1046,12 @@ DELETE /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Get | DB 인스턴스 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1047,6 +1131,12 @@ GET /v4.0/db-instances/{dbInstanceId} PUT /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Modify | DB 인스턴스 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1123,6 +1213,12 @@ PUT /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Get | 백업 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1179,6 +1275,12 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info PUT /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Modify | 백업 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1246,6 +1348,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info GET /v4.0/db-instances/{dbInstanceId}/binlogs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceBinLog.List | 바이너리 로그 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1294,6 +1402,12 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceBinLog.Purge | 바이너리 로그 삭제 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1325,6 +1439,12 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge GET /v4.0/db-instances/{dbInstanceId}/certificates ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceCertificate.List | 인증서 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1375,6 +1495,12 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates POST /v4.0/db-instances/{dbInstanceId}/certificates/upload ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceCertificate.Export | 인증서 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1435,6 +1561,12 @@ POST /v4.0/db-instances/{dbInstanceId}/certificates/upload GET /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceSchema.List | DB 스키마 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1485,6 +1617,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas POST /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceSchema.Create | DB 스키마 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1535,6 +1673,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-schemas DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceSchema.Delete | DB 스키마 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1575,6 +1719,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} GET /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceUser.List | DB 사용자 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1635,6 +1785,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users POST /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceUser.Create | DB 사용자 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1695,6 +1851,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-users DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceUser.Delete | DB 사용자 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1735,6 +1897,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceUser.Modify | DB 사용자 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1792,6 +1960,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Modify | DB 인스턴스 삭제 보호 설정 변경 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1823,6 +1997,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1843,6 +2023,12 @@ POST /v4.0/db-instances/{dbInstanceId}/force-restart GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Get | 고가용성 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1888,6 +2074,12 @@ GET /v4.0/db-instances/{dbInstanceId}/high-availability PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:HighAvailability.Modify | 고가용성 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1946,6 +2138,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/high-availability POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:HighAvailability.Pause | 고가용성 일시 중지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1985,6 +2183,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:HighAvailability.Repair | 고가용성 복구하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2024,6 +2228,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:HighAvailability.Resume | 고가용성 다시 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2063,6 +2273,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:HighAvailability.Split | 고가용성 분리하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2102,6 +2318,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/split GET /v4.0/db-instances/{dbInstanceId}/log-files ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceLog.List | 로그 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2152,6 +2374,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files POST /v4.0/db-instances/{dbInstanceId}/log-files/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceLog.Export | 로그 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2212,6 +2440,12 @@ POST /v4.0/db-instances/{dbInstanceId}/log-files/export GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceLog.Get | 로그 파일 내용 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2252,6 +2486,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Maintenance.List | DB 인스턴스 유지 관리 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2326,6 +2566,12 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Maintenance.Execute | DB 인스턴스 유지 관리 즉시 실행하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2384,6 +2630,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Maintenance.Update | DB 인스턴스 유지 관리 예약하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2423,6 +2675,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Maintenance.Delete | DB 인스턴스 유지 관리 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2444,6 +2702,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} GET /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Get | 네트워크 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2503,6 +2767,12 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Modify | 네트워크 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2553,6 +2823,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/network-info POST /v4.0/db-instances/{dbInstanceId}/promote ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Promote | DB 인스턴스 승격하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2592,6 +2868,12 @@ POST /v4.0/db-instances/{dbInstanceId}/promote POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Rebuild | DB 인스턴스 재구축하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2631,6 +2913,12 @@ POST /v4.0/db-instances/{dbInstanceId}/rebuild POST /v4.0/db-instances/{dbInstanceId}/replicate ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Replicate | DB 인스턴스 복제하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2748,6 +3036,12 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate POST /v4.0/db-instances/{dbInstanceId}/restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Restart | DB 인스턴스 재시작하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2804,6 +3098,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restart GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Get | DB 인스턴스 복원 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2884,6 +3184,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Get | 복원될 마지막 쿼리 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2925,6 +3231,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query POST /v4.0/db-instances/{dbInstanceId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Restore | DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3089,6 +3401,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restore POST /v4.0/db-instances/{dbInstanceId}/start ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Start | DB 인스턴스 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3128,6 +3446,12 @@ POST /v4.0/db-instances/{dbInstanceId}/start POST /v4.0/db-instances/{dbInstanceId}/stop ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Stop | DB 인스턴스 정지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3167,6 +3491,12 @@ POST /v4.0/db-instances/{dbInstanceId}/stop GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Get | 스토리지 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3221,6 +3551,12 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Modify | 스토리지 정보 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3296,6 +3632,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/storage-info GET /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Backup.List | 백업 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3356,6 +3698,12 @@ GET /v4.0/backups POST /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Backup.Create | 백업 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3411,6 +3759,12 @@ POST /v4.0/backups DELETE /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Backup.Delete | 백업 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3450,6 +3804,12 @@ DELETE /v4.0/backups/{backupId} GET /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Backup.Get | 백업 단건 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3525,6 +3885,12 @@ GET /v4.0/backups/{backupId} POST /v4.0/backups/{backupId}/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Backup.Export | 백업 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3583,6 +3949,12 @@ POST /v4.0/backups/{backupId}/export POST /v4.0/backups/{backupId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Backup.Restore | 백업 복원하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3723,6 +4095,12 @@ POST /v4.0/backups/{backupId}/restore GET /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3775,6 +4153,12 @@ GET /v4.0/db-security-groups POST /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3848,6 +4232,12 @@ POST /v4.0/db-security-groups DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3868,6 +4258,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} GET /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3945,6 +4341,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3978,6 +4380,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbSecurityGroupRule.Delete | DB 보안 그룹 규칙 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4018,6 +4426,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4083,6 +4497,12 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4151,6 +4571,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} GET /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:ParameterGroup.List | 파라미터 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4207,6 +4633,12 @@ GET /v4.0/parameter-groups POST /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:ParameterGroup.Create | 파라미터 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4260,6 +4692,12 @@ POST /v4.0/parameter-groups DELETE /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4280,6 +4718,12 @@ DELETE /v4.0/parameter-groups/{parameterGroupId} GET /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:ParameterGroup.Get | 파라미터 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4354,6 +4798,12 @@ GET /v4.0/parameter-groups/{parameterGroupId} PUT /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:ParameterGroup.Modify | 파라미터 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4387,6 +4837,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId} POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:ParameterGroup.Copy | 파라미터 그룹 복사하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4439,6 +4895,12 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:ParameterGroup.Modify | 파라미터 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4477,6 +4939,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4499,6 +4967,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset GET /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:UserGroup.List | 사용자 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4547,6 +5021,12 @@ GET /v4.0/user-groups POST /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:UserGroup.Create | 사용자 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4600,6 +5080,12 @@ POST /v4.0/user-groups DELETE /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:UserGroup.Delete | 사용자 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4620,6 +5106,12 @@ DELETE /v4.0/user-groups/{userGroupId} GET /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:UserGroup.Get | 사용자 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4674,6 +5166,12 @@ GET /v4.0/user-groups/{userGroupId} PUT /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:UserGroup.Modify | 사용자 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4711,6 +5209,12 @@ PUT /v4.0/user-groups/{userGroupId} GET /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:NotificationGroup.List | 알림 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4763,6 +5267,12 @@ GET /v4.0/notification-groups POST /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:NotificationGroup.Create | 알림 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4822,6 +5332,12 @@ POST /v4.0/notification-groups DELETE /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:NotificationGroup.Delete | 알림 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4842,6 +5358,12 @@ DELETE /v4.0/notification-groups/{notificationGroupId} GET /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:NotificationGroup.Get | 알림 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4911,6 +5433,12 @@ GET /v4.0/notification-groups/{notificationGroupId} PUT /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:NotificationGroup.Modify | 알림 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4954,6 +5482,12 @@ PUT /v4.0/notification-groups/{notificationGroupId} GET /v4.0/metric-statistics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Metric.List | 통계 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4970,6 +5504,12 @@ GET /v4.0/metric-statistics GET /v4.0/metrics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Metric.List | Metric 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5027,6 +5567,12 @@ GET /v4.0/metrics GET /v4.0/event-codes ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Event.List | 구독 가능한 이벤트 코드 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5069,6 +5615,12 @@ GET /v4.0/event-codes GET /v4.0/events ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Event.List | 이벤트 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5130,6 +5682,12 @@ GET /v4.0/events GET /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:EventSubscription.List | 이벤트 구독 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5197,6 +5755,12 @@ GET /v4.0/event-subscriptions POST /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:EventSubscription.Create | 이벤트 구독 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5267,6 +5831,12 @@ POST /v4.0/event-subscriptions DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:EventSubscription.Delete | 이벤트 구독 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5287,6 +5857,12 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} PUT /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:EventSubscription.Modify | 이벤트 구독 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5341,6 +5917,12 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} GET /v4.0/availability-zones ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:AvailabilityZone.List | 가용성 영역 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. diff --git a/mariadb/ko/api-guide-v4.0.md b/mariadb/ko/api-guide-v4.0.md index b3e022dd..a553dd98 100644 --- a/mariadb/ko/api-guide-v4.0.md +++ b/mariadb/ko/api-guide-v4.0.md @@ -84,6 +84,12 @@ API 요청 시 인증에 실패하거나 권한이 없을 경우 다음과 같 GET /v4.0/project/members ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Project.Get | 프로젝트 멤버 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -130,6 +136,12 @@ GET /v4.0/project/members GET /v4.0/project/regions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Project.Get | 리전 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -174,6 +186,12 @@ GET /v4.0/project/regions GET /v4.0/db-flavors ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbFlavor.List | DB 인스턴스 사양 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -222,6 +240,12 @@ GET /v4.0/db-flavors GET /v4.0/network/subnets ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Network.List | 서브넷 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -272,6 +296,12 @@ GET /v4.0/network/subnets GET /v4.0/db-versions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbVersion.List | DB 엔진 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -318,6 +348,12 @@ GET /v4.0/db-versions GET /v4.0/storage-types ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Storage.List | 스토리지 타입 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -372,6 +408,12 @@ GET /v4.0/storage-types GET /v4.0/jobs/{jobId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Job.Get | 작업 정보 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -428,6 +470,12 @@ GET /v4.0/jobs/{jobId} GET /v4.0/db-instance-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceGroup.List | DB 인스턴스 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -474,6 +522,12 @@ GET /v4.0/db-instance-groups GET /v4.0/db-instance-groups/{dbInstanceGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceGroup.Get | DB 인스턴스 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -577,6 +631,12 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} GET /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.List | DB 인스턴스 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -637,6 +697,12 @@ GET /v4.0/db-instances POST /v4.0/db-instances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Create | DB 인스턴스 생성하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -775,6 +841,12 @@ POST /v4.0/db-instances POST /v4.0/db-instances/restore-from-obs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.RestoreFromObs | 오브젝트 스토리지를 이용한 DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -918,6 +990,12 @@ POST /v4.0/db-instances/restore-from-obs DELETE /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Delete | DB 인스턴스 삭제하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -968,6 +1046,12 @@ DELETE /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Get | DB 인스턴스 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1047,6 +1131,12 @@ GET /v4.0/db-instances/{dbInstanceId} PUT /v4.0/db-instances/{dbInstanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Modify | DB 인스턴스 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1123,6 +1213,12 @@ PUT /v4.0/db-instances/{dbInstanceId} GET /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Get | 백업 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1179,6 +1275,12 @@ GET /v4.0/db-instances/{dbInstanceId}/backup-info PUT /v4.0/db-instances/{dbInstanceId}/backup-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Modify | 백업 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1246,6 +1348,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/backup-info GET /v4.0/db-instances/{dbInstanceId}/binlogs ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceBinLog.List | 바이너리 로그 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1294,6 +1402,12 @@ GET /v4.0/db-instances/{dbInstanceId}/binlogs POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceBinLog.Purge | 바이너리 로그 삭제 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1325,6 +1439,12 @@ POST /v4.0/db-instances/{dbInstanceId}/binlogs/purge GET /v4.0/db-instances/{dbInstanceId}/certificates ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceCertificate.List | 인증서 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1375,6 +1495,12 @@ GET /v4.0/db-instances/{dbInstanceId}/certificates POST /v4.0/db-instances/{dbInstanceId}/certificates/upload ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceCertificate.Export | 인증서 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1435,6 +1561,12 @@ POST /v4.0/db-instances/{dbInstanceId}/certificates/upload GET /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceSchema.List | DB 스키마 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1485,6 +1617,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas POST /v4.0/db-instances/{dbInstanceId}/db-schemas ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceSchema.Create | DB 스키마 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1535,6 +1673,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-schemas DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceSchema.Delete | DB 스키마 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1575,6 +1719,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} GET /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceUser.List | DB 사용자 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1635,6 +1785,12 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users POST /v4.0/db-instances/{dbInstanceId}/db-users ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceUser.Create | DB 사용자 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1695,6 +1851,12 @@ POST /v4.0/db-instances/{dbInstanceId}/db-users DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceUser.Delete | DB 사용자 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1735,6 +1897,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceUser.Modify | DB 사용자 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1792,6 +1960,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/db-users/{dbUserId} PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Modify | DB 인스턴스 삭제 보호 설정 변경 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1823,6 +1997,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/deletion-protection POST /v4.0/db-instances/{dbInstanceId}/force-restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.ForceRestart | DB 인스턴스 강제 재시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1843,6 +2023,12 @@ POST /v4.0/db-instances/{dbInstanceId}/force-restart GET /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Get | 고가용성 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1888,6 +2074,12 @@ GET /v4.0/db-instances/{dbInstanceId}/high-availability PUT /v4.0/db-instances/{dbInstanceId}/high-availability ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:HighAvailability.Modify | 고가용성 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -1946,6 +2138,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/high-availability POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:HighAvailability.Pause | 고가용성 일시 중지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -1985,6 +2183,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/pause POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:HighAvailability.Repair | 고가용성 복구하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2024,6 +2228,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/repair POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:HighAvailability.Resume | 고가용성 다시 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2063,6 +2273,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/resume POST /v4.0/db-instances/{dbInstanceId}/high-availability/split ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:HighAvailability.Split | 고가용성 분리하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2102,6 +2318,12 @@ POST /v4.0/db-instances/{dbInstanceId}/high-availability/split GET /v4.0/db-instances/{dbInstanceId}/log-files ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceLog.List | 로그 파일 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2152,6 +2374,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files POST /v4.0/db-instances/{dbInstanceId}/log-files/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceLog.Export | 로그 파일 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2212,6 +2440,12 @@ POST /v4.0/db-instances/{dbInstanceId}/log-files/export GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstanceLog.Get | 로그 파일 내용 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2252,6 +2486,12 @@ GET /v4.0/db-instances/{dbInstanceId}/log-files/{logFileName} GET /v4.0/db-instances/{dbInstanceId}/maintenances ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Maintenance.List | DB 인스턴스 유지 관리 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2326,6 +2566,12 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Maintenance.Execute | DB 인스턴스 유지 관리 즉시 실행하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2384,6 +2630,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/execute-now POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Maintenance.Update | DB 인스턴스 유지 관리 예약하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2423,6 +2675,12 @@ POST /v4.0/db-instances/{dbInstanceId}/maintenances/schedule DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Maintenance.Delete | DB 인스턴스 유지 관리 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2444,6 +2702,12 @@ DELETE /v4.0/db-instances/{dbInstanceId}/maintenances/{maintenanceId} GET /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Get | 네트워크 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2503,6 +2767,12 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info PUT /v4.0/db-instances/{dbInstanceId}/network-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Modify | 네트워크 정보 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2553,6 +2823,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/network-info POST /v4.0/db-instances/{dbInstanceId}/promote ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Promote | DB 인스턴스 승격하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2592,6 +2868,12 @@ POST /v4.0/db-instances/{dbInstanceId}/promote POST /v4.0/db-instances/{dbInstanceId}/rebuild ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Rebuild | DB 인스턴스 재구축하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2631,6 +2913,12 @@ POST /v4.0/db-instances/{dbInstanceId}/rebuild POST /v4.0/db-instances/{dbInstanceId}/replicate ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Replicate | DB 인스턴스 복제하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2748,6 +3036,12 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate POST /v4.0/db-instances/{dbInstanceId}/restart ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Restart | DB 인스턴스 재시작하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -2804,6 +3098,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restart GET /v4.0/db-instances/{dbInstanceId}/restoration-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Get | DB 인스턴스 복원 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2884,6 +3184,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Get | 복원될 마지막 쿼리 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -2925,6 +3231,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info/last-query POST /v4.0/db-instances/{dbInstanceId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Restore | DB 인스턴스 복원 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3089,6 +3401,12 @@ POST /v4.0/db-instances/{dbInstanceId}/restore POST /v4.0/db-instances/{dbInstanceId}/start ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Start | DB 인스턴스 시작하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3128,6 +3446,12 @@ POST /v4.0/db-instances/{dbInstanceId}/start POST /v4.0/db-instances/{dbInstanceId}/stop ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Stop | DB 인스턴스 정지하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3167,6 +3491,12 @@ POST /v4.0/db-instances/{dbInstanceId}/stop GET /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Get | 스토리지 정보 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3221,6 +3551,12 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info PUT /v4.0/db-instances/{dbInstanceId}/storage-info ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbInstance.Modify | 스토리지 정보 수정하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3296,6 +3632,12 @@ PUT /v4.0/db-instances/{dbInstanceId}/storage-info GET /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Backup.List | 백업 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3356,6 +3698,12 @@ GET /v4.0/backups POST /v4.0/backups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Backup.Create | 백업 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3411,6 +3759,12 @@ POST /v4.0/backups DELETE /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Backup.Delete | 백업 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3450,6 +3804,12 @@ DELETE /v4.0/backups/{backupId} GET /v4.0/backups/{backupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Backup.Get | 백업 단건 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3525,6 +3885,12 @@ GET /v4.0/backups/{backupId} POST /v4.0/backups/{backupId}/export ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Backup.Export | 백업 내보내기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3583,6 +3949,12 @@ POST /v4.0/backups/{backupId}/export POST /v4.0/backups/{backupId}/restore ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Backup.Restore | 백업 복원하기 | + #### 공통 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3723,6 +4095,12 @@ POST /v4.0/backups/{backupId}/restore GET /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbSecurityGroup.List | DB 보안 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3775,6 +4153,12 @@ GET /v4.0/db-security-groups POST /v4.0/db-security-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbSecurityGroup.Create | DB 보안 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3848,6 +4232,12 @@ POST /v4.0/db-security-groups DELETE /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbSecurityGroup.Delete | DB 보안 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3868,6 +4258,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId} GET /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbSecurityGroup.Get | DB 보안 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -3945,6 +4341,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} PUT /v4.0/db-security-groups/{dbSecurityGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbSecurityGroup.Modify | DB 보안 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -3978,6 +4380,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId} DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbSecurityGroupRule.Delete | DB 보안 그룹 규칙 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4018,6 +4426,12 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbSecurityGroupRule.Create | DB 보안 그룹 규칙 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4083,6 +4497,12 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:DbSecurityGroupRule.Modify | DB 보안 그룹 규칙 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4151,6 +4571,12 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} GET /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:ParameterGroup.List | 파라미터 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4207,6 +4633,12 @@ GET /v4.0/parameter-groups POST /v4.0/parameter-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:ParameterGroup.Create | 파라미터 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4260,6 +4692,12 @@ POST /v4.0/parameter-groups DELETE /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:ParameterGroup.Delete | 파라미터 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4280,6 +4718,12 @@ DELETE /v4.0/parameter-groups/{parameterGroupId} GET /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:ParameterGroup.Get | 파라미터 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4354,6 +4798,12 @@ GET /v4.0/parameter-groups/{parameterGroupId} PUT /v4.0/parameter-groups/{parameterGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:ParameterGroup.Modify | 파라미터 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4387,6 +4837,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId} POST /v4.0/parameter-groups/{parameterGroupId}/copy ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:ParameterGroup.Copy | 파라미터 그룹 복사하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4439,6 +4895,12 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy PUT /v4.0/parameter-groups/{parameterGroupId}/parameters ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:ParameterGroup.Modify | 파라미터 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4477,6 +4939,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/parameters PUT /v4.0/parameter-groups/{parameterGroupId}/reset ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:ParameterGroup.Reset | 파라미터 그룹 재설정하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4499,6 +4967,12 @@ PUT /v4.0/parameter-groups/{parameterGroupId}/reset GET /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:UserGroup.List | 사용자 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4547,6 +5021,12 @@ GET /v4.0/user-groups POST /v4.0/user-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:UserGroup.Create | 사용자 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4600,6 +5080,12 @@ POST /v4.0/user-groups DELETE /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:UserGroup.Delete | 사용자 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4620,6 +5106,12 @@ DELETE /v4.0/user-groups/{userGroupId} GET /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:UserGroup.Get | 사용자 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4674,6 +5166,12 @@ GET /v4.0/user-groups/{userGroupId} PUT /v4.0/user-groups/{userGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:UserGroup.Modify | 사용자 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4711,6 +5209,12 @@ PUT /v4.0/user-groups/{userGroupId} GET /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:NotificationGroup.List | 알림 그룹 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4763,6 +5267,12 @@ GET /v4.0/notification-groups POST /v4.0/notification-groups ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:NotificationGroup.Create | 알림 그룹 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4822,6 +5332,12 @@ POST /v4.0/notification-groups DELETE /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:NotificationGroup.Delete | 알림 그룹 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4842,6 +5358,12 @@ DELETE /v4.0/notification-groups/{notificationGroupId} GET /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:NotificationGroup.Get | 알림 그룹 상세 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4911,6 +5433,12 @@ GET /v4.0/notification-groups/{notificationGroupId} PUT /v4.0/notification-groups/{notificationGroupId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:NotificationGroup.Modify | 알림 그룹 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -4954,6 +5482,12 @@ PUT /v4.0/notification-groups/{notificationGroupId} GET /v4.0/metric-statistics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Metric.List | 통계 정보 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -4970,6 +5504,12 @@ GET /v4.0/metric-statistics GET /v4.0/metrics ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Metric.List | Metric 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5027,6 +5567,12 @@ GET /v4.0/metrics GET /v4.0/event-codes ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Event.List | 구독 가능한 이벤트 코드 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5069,6 +5615,12 @@ GET /v4.0/event-codes GET /v4.0/events ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:Event.List | 이벤트 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5130,6 +5682,12 @@ GET /v4.0/events GET /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:EventSubscription.List | 이벤트 구독 목록 조회 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5197,6 +5755,12 @@ GET /v4.0/event-subscriptions POST /v4.0/event-subscriptions ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:EventSubscription.Create | 이벤트 구독 생성하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5267,6 +5831,12 @@ POST /v4.0/event-subscriptions DELETE /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:EventSubscription.Delete | 이벤트 구독 삭제하기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. @@ -5287,6 +5857,12 @@ DELETE /v4.0/event-subscriptions/{eventSubscriptionId} PUT /v4.0/event-subscriptions/{eventSubscriptionId} ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:EventSubscription.Modify | 이벤트 구독 수정하기 | + #### 요청 | 이름 | 종류 | 형식 | 필수 | 설명 | @@ -5341,6 +5917,12 @@ PUT /v4.0/event-subscriptions/{eventSubscriptionId} GET /v4.0/availability-zones ``` +#### 필요 권한 + +| 권한명 | 설명 | +|-----|-----| +| RDSforMariaDB:AvailabilityZone.List | 가용성 영역 목록 보기 | + #### 요청 이 API는 요청 본문을 요구하지 않습니다. From 3ce4359adc4ffd4af8ead40979527b9608983ca8 Mon Sep 17 00:00:00 2001 From: "hyungmin.oh" Date: Thu, 4 Jun 2026 18:45:51 +0900 Subject: [PATCH 7/7] =?UTF-8?q?docs(ko):=20API=20=EA=B0=80=EC=9D=B4?= =?UTF-8?q?=EB=93=9C=20=EC=9D=91=EB=8B=B5=20UUID=20=ED=83=80=EC=9E=85?= =?UTF-8?q?=C2=B7=EC=98=88=EC=8B=9C=EA=B0=92=20=EA=B0=B1=EC=8B=A0=20(nc-rd?= =?UTF-8?q?s=20feature/4321=20=EC=9E=AC=EC=83=9D=EC=84=B1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - UUID 식별자 응답 필드가 String/placeholder 대신 UUID 타입·예시로 렌더링 - storageType/availabilityZone/dbVersion 예시값 보강(ENUM_VALUE 제거) - mysql v3.0/v4.0 전 리전 + mariadb v4.0(public/gov) ko 가이드 갱신 - en/ja 및 mariadb v3.0(생성 소스 없음)은 후속 처리 --- ko/api-guide-v3.0-gov.md | 316 +++++++++++++++---------------- ko/api-guide-v3.0-ncgn.md | 316 +++++++++++++++---------------- ko/api-guide-v3.0-ngoic.md | 316 +++++++++++++++---------------- ko/api-guide-v3.0-ngovc.md | 316 +++++++++++++++---------------- ko/api-guide-v3.0-ngsc.md | 316 +++++++++++++++---------------- ko/api-guide-v3.0-ninc.md | 316 +++++++++++++++---------------- ko/api-guide-v3.0.md | 316 +++++++++++++++---------------- ko/api-guide-v4.0-gov.md | 232 +++++++++++------------ ko/api-guide-v4.0-ncgn.md | 232 +++++++++++------------ ko/api-guide-v4.0-ngoic.md | 232 +++++++++++------------ ko/api-guide-v4.0-ngovc.md | 232 +++++++++++------------ ko/api-guide-v4.0-ngsc.md | 232 +++++++++++------------ ko/api-guide-v4.0-ninc.md | 232 +++++++++++------------ ko/api-guide-v4.0.md | 232 +++++++++++------------ mariadb/ko/api-guide-v4.0-gov.md | 232 +++++++++++------------ mariadb/ko/api-guide-v4.0.md | 232 +++++++++++------------ 16 files changed, 2150 insertions(+), 2150 deletions(-) diff --git a/ko/api-guide-v3.0-gov.md b/ko/api-guide-v3.0-gov.md index be13c5e6..e88464a3 100644 --- a/ko/api-guide-v3.0-gov.md +++ b/ko/api-guide-v3.0-gov.md @@ -107,7 +107,7 @@ GET /v3.0/project/members | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | members.memberName | Body | String | 프로젝트 멤버의 이름 | | members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | | members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | @@ -124,7 +124,7 @@ GET /v3.0/project/members }, "members": [ { - "memberId": "memberId-example", + "memberId": "550e8400-e29b-41d4-a716-446655440000", "memberName": "memberName-example", "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" @@ -197,7 +197,7 @@ GET /v3.0/db-flavors | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | | dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | | dbFlavors.ram | Body | Number | 메모리 용량(MB) | | dbFlavors.vcpus | Body | Number | CPU 코어 수 | @@ -214,7 +214,7 @@ GET /v3.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "dbFlavorId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbFlavorName": "dbFlavorName-example", "ram": 1, "vcpus": 1 @@ -311,7 +311,7 @@ GET /v3.0/db-versions }, "dbVersions": [ { - "dbVersion": "dbVersion-example", + "dbVersion": "MYSQL_V8036", "dbVersionName": "dbVersionName-example", "restorableFromObs": false } @@ -433,7 +433,7 @@ GET /v3.0/jobs/{jobId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 | | jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | | resourceRelations | Body | Array | 연관 리소스 목록 | | resourceRelations.resourceType | Body | String | 연관 리소스 유형 | @@ -451,7 +451,7 @@ GET /v3.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", + "jobId": "550e8400-e29b-41d4-a716-446655440000", "jobStatus": "DELETED", "resourceRelations": [ { @@ -486,7 +486,7 @@ GET /v3.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | | dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -503,7 +503,7 @@ GET /v3.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -535,10 +535,10 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | createdYmdt | Body | DateTime | 생성 일시 | @@ -554,11 +554,11 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } @@ -635,8 +635,8 @@ GET /v3.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | @@ -659,11 +659,11 @@ GET /v3.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", @@ -733,7 +733,7 @@ POST /v3.0/db-instances "dbInstanceCandidateName": "dbInstanceCandidateName", "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbUserName": "dbUserName", "dbPassword": "dbPassword", @@ -749,10 +749,10 @@ POST /v3.0/db-instances "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -778,7 +778,7 @@ POST /v3.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |
예시

@@ -790,7 +790,7 @@ POST /v3.0/db-instances "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -856,18 +856,18 @@ POST /v3.0/db-instances/restore-from-obs "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbPort": 1, - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useHighAvailability": false, "imageId": "550e8400-e29b-41d4-a716-446655440000", "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -924,7 +924,7 @@ DELETE /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -936,7 +936,7 @@ DELETE /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -963,8 +963,8 @@ GET /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | @@ -972,8 +972,8 @@ GET /v3.0/db-instances/{dbInstanceId} | dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | -| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | | dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | | notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | | useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | @@ -994,17 +994,17 @@ GET /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", "progressStatus": "NONE", - "dbFlavorId": "dbFlavorId-example", - "parameterGroupId": "parameterGroupId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupIds": [], "notificationGroupIds": [], "useDeletionProtection": false, @@ -1058,7 +1058,7 @@ PUT /v3.0/db-instances/{dbInstanceId} "dbPort": 1, "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useDummy": false, "dbSecurityGroupIds": [], "executeBackup": false, @@ -1075,7 +1075,7 @@ PUT /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1087,7 +1087,7 @@ PUT /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1125,7 +1125,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1137,7 +1137,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1248,7 +1248,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1260,7 +1260,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1306,7 +1306,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1318,7 +1318,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1366,7 +1366,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | | dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | | dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | | dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | @@ -1383,7 +1383,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { - "dbSchemaId": "dbSchemaId-example", + "dbSchemaId": "550e8400-e29b-41d4-a716-446655440000", "dbSchemaName": "dbSchemaName-example", "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" @@ -1426,7 +1426,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1438,7 +1438,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1466,7 +1466,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1478,7 +1478,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1506,7 +1506,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | | dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | | dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | | dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | @@ -1528,7 +1528,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { - "dbUserId": "dbUserId-example", + "dbUserId": "550e8400-e29b-41d4-a716-446655440000", "dbUserName": "dbUserName-example", "host": "host-example", "authorityType": "CUSTOM", @@ -1586,7 +1586,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1598,7 +1598,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1626,7 +1626,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1638,7 +1638,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1683,7 +1683,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1695,7 +1695,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1786,7 +1786,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/high-availability | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1798,7 +1798,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/high-availability "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1825,7 +1825,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1837,7 +1837,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1864,7 +1864,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1876,7 +1876,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1903,7 +1903,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1915,7 +1915,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1942,7 +1942,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/split | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1954,7 +1954,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/split "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2052,7 +2052,7 @@ POST /v3.0/db-instances/{dbInstanceId}/log-files/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2064,7 +2064,7 @@ POST /v3.0/db-instances/{dbInstanceId}/log-files/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2093,7 +2093,7 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info |-----|-----|-----|-----| | availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | | subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetId | Body | UUID | 서브넷의 식별자 | | subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnet.subnetCidr | Body | String | 서브넷의 CIDR | | endPoints | Body | Array | 접속 정보 목록 | @@ -2111,9 +2111,9 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "availabilityZone-example", + "availabilityZone": "kr-pub-a", "subnet": { - "subnetId": "subnetId-example", + "subnetId": "550e8400-e29b-41d4-a716-446655440000", "subnetName": "subnetName-example", "subnetCidr": "subnetCidr-example" }, @@ -2161,7 +2161,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/network-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2173,7 +2173,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2200,7 +2200,7 @@ POST /v3.0/db-instances/{dbInstanceId}/promote | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2212,7 +2212,7 @@ POST /v3.0/db-instances/{dbInstanceId}/promote "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2273,10 +2273,10 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "useDeletionProtection": false, "network": { "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -2302,7 +2302,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2314,7 +2314,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2358,7 +2358,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restart | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2370,7 +2370,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restart "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2522,13 +2522,13 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "imageId": "550e8400-e29b-41d4-a716-446655440000", "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -2566,7 +2566,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2578,7 +2578,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2605,7 +2605,7 @@ POST /v3.0/db-instances/{dbInstanceId}/start | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2617,7 +2617,7 @@ POST /v3.0/db-instances/{dbInstanceId}/start "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2644,7 +2644,7 @@ POST /v3.0/db-instances/{dbInstanceId}/stop | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2656,7 +2656,7 @@ POST /v3.0/db-instances/{dbInstanceId}/stop "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2697,7 +2697,7 @@ GET /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 1, "storageStatus": "DELETED" } @@ -2737,7 +2737,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2749,7 +2749,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2786,10 +2786,10 @@ GET /v3.0/backups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 백업 목록 수 | | backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupId | Body | UUID | 백업의 식별자 | | backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backups.dbVersion | Body | Enum | DB 엔진 유형 | | backups.utilVersion | Body | String | 유틸리티 버전 | | backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -2810,11 +2810,11 @@ GET /v3.0/backups "totalCounts": 1, "backups": [ { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbVersion": "ENUM_VALUE", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupSize": 1, @@ -2848,7 +2848,7 @@ DELETE /v3.0/backups/{backupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2860,7 +2860,7 @@ DELETE /v3.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2906,7 +2906,7 @@ POST /v3.0/backups/{backupId}/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2918,7 +2918,7 @@ POST /v3.0/backups/{backupId}/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2985,10 +2985,10 @@ POST /v3.0/backups/{backupId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -3014,7 +3014,7 @@ POST /v3.0/backups/{backupId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3026,7 +3026,7 @@ POST /v3.0/backups/{backupId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3061,7 +3061,7 @@ GET /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | @@ -3080,7 +3080,7 @@ GET /v3.0/db-security-groups }, "dbSecurityGroups": [ { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", @@ -3148,7 +3148,7 @@ POST /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 |

예시

@@ -3160,7 +3160,7 @@ POST /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3208,12 +3208,12 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSecurityGroup | Body | Object | DB 보안 그룹 | -| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | | dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | -| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | | dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | | dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | | dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | @@ -3238,13 +3238,13 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "isSuccessful": true }, "dbSecurityGroup": { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", "rules": [ { - "ruleId": "ruleId-example", + "ruleId": "550e8400-e29b-41d4-a716-446655440000", "description": "description-example", "direction": "INGRESS", "etherType": "IPV4", @@ -3321,7 +3321,7 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3333,7 +3333,7 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3386,7 +3386,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3398,7 +3398,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3452,7 +3452,7 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3464,7 +3464,7 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3490,7 +3490,7 @@ GET /v3.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | | parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | @@ -3510,10 +3510,10 @@ GET /v3.0/parameter-groups }, "parameterGroups": [ { - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -3548,7 +3548,7 @@ POST /v3.0/parameter-groups { "parameterGroupName": "parameterGroupName", "description": "description-example", - "dbVersion": "ENUM_VALUE" + "dbVersion": "MYSQL_V8036" } ``` @@ -3559,7 +3559,7 @@ POST /v3.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -3571,7 +3571,7 @@ POST /v3.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3618,13 +3618,13 @@ GET /v3.0/parameter-groups/{parameterGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | description | Body | String | 파라미터 그룹에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | | parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | | parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterId | Body | UUID | 파라미터의 식별자 | | parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | | parameters.parameterName | Body | String | 파라미터 이름 | | parameters.fileParameterName | Body | String | 파라미터 파일 이름 | @@ -3646,14 +3646,14 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "parameters": [ { - "parameterId": "parameterId-example", + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "parameterFileGroup": "CLIENT", "parameterName": "parameterName-example", "fileParameterName": "fileParameterName-example", @@ -3738,7 +3738,7 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -3750,7 +3750,7 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3834,7 +3834,7 @@ GET /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroups.createdYmdt | Body | DateTime | 생성 일시 | | userGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -3851,7 +3851,7 @@ GET /v3.0/user-groups }, "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -3897,7 +3897,7 @@ POST /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 |

예시

@@ -3909,7 +3909,7 @@ POST /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "userGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3956,11 +3956,11 @@ GET /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -3974,12 +3974,12 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "userGroupTypeCode": "ENTIRE", "members": [ { - "memberId": "memberId-example" + "memberId": "550e8400-e29b-41d4-a716-446655440000" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4044,7 +4044,7 @@ GET /v3.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | | notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | @@ -4064,7 +4064,7 @@ GET /v3.0/notification-groups }, "notificationGroups": [ { - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, @@ -4119,7 +4119,7 @@ POST /v3.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 |

예시

@@ -4131,7 +4131,7 @@ POST /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example" + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4178,16 +4178,16 @@ GET /v3.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notifyEmail | Body | Boolean | 이메일 알림 여부 | | notifySms | Body | Boolean | SMS 알림 여부 | | isEnabled | Body | Boolean | 활성화 여부 | | dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4202,20 +4202,20 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, "isEnabled": false, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example" } ], @@ -4464,7 +4464,7 @@ GET /v3.0/event-subscriptions |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | | eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | | eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | | eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | | eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | @@ -4490,7 +4490,7 @@ GET /v3.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "eventSubscriptionId-example", + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL", "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, @@ -4564,7 +4564,7 @@ POST /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 |

예시

@@ -4576,7 +4576,7 @@ POST /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000" } ``` diff --git a/ko/api-guide-v3.0-ncgn.md b/ko/api-guide-v3.0-ncgn.md index a423ff64..d5adf612 100644 --- a/ko/api-guide-v3.0-ncgn.md +++ b/ko/api-guide-v3.0-ncgn.md @@ -107,7 +107,7 @@ GET /v3.0/project/members | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | members.memberName | Body | String | 프로젝트 멤버의 이름 | | members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | | members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | @@ -124,7 +124,7 @@ GET /v3.0/project/members }, "members": [ { - "memberId": "memberId-example", + "memberId": "550e8400-e29b-41d4-a716-446655440000", "memberName": "memberName-example", "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" @@ -197,7 +197,7 @@ GET /v3.0/db-flavors | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | | dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | | dbFlavors.ram | Body | Number | 메모리 용량(MB) | | dbFlavors.vcpus | Body | Number | CPU 코어 수 | @@ -214,7 +214,7 @@ GET /v3.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "dbFlavorId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbFlavorName": "dbFlavorName-example", "ram": 1, "vcpus": 1 @@ -311,7 +311,7 @@ GET /v3.0/db-versions }, "dbVersions": [ { - "dbVersion": "dbVersion-example", + "dbVersion": "MYSQL_V8036", "dbVersionName": "dbVersionName-example", "restorableFromObs": false } @@ -433,7 +433,7 @@ GET /v3.0/jobs/{jobId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 | | jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | | resourceRelations | Body | Array | 연관 리소스 목록 | | resourceRelations.resourceType | Body | String | 연관 리소스 유형 | @@ -451,7 +451,7 @@ GET /v3.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", + "jobId": "550e8400-e29b-41d4-a716-446655440000", "jobStatus": "DELETED", "resourceRelations": [ { @@ -486,7 +486,7 @@ GET /v3.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | | dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -503,7 +503,7 @@ GET /v3.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -535,10 +535,10 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | createdYmdt | Body | DateTime | 생성 일시 | @@ -554,11 +554,11 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } @@ -635,8 +635,8 @@ GET /v3.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | @@ -659,11 +659,11 @@ GET /v3.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", @@ -733,7 +733,7 @@ POST /v3.0/db-instances "dbInstanceCandidateName": "dbInstanceCandidateName", "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbUserName": "dbUserName", "dbPassword": "dbPassword", @@ -749,10 +749,10 @@ POST /v3.0/db-instances "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -778,7 +778,7 @@ POST /v3.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -790,7 +790,7 @@ POST /v3.0/db-instances "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -856,18 +856,18 @@ POST /v3.0/db-instances/restore-from-obs "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbPort": 1, - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useHighAvailability": false, "imageId": "550e8400-e29b-41d4-a716-446655440000", "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -924,7 +924,7 @@ DELETE /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -936,7 +936,7 @@ DELETE /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -963,8 +963,8 @@ GET /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | @@ -972,8 +972,8 @@ GET /v3.0/db-instances/{dbInstanceId} | dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | -| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | | dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | | notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | | useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | @@ -994,17 +994,17 @@ GET /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", "progressStatus": "NONE", - "dbFlavorId": "dbFlavorId-example", - "parameterGroupId": "parameterGroupId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupIds": [], "notificationGroupIds": [], "useDeletionProtection": false, @@ -1058,7 +1058,7 @@ PUT /v3.0/db-instances/{dbInstanceId} "dbPort": 1, "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useDummy": false, "dbSecurityGroupIds": [], "executeBackup": false, @@ -1075,7 +1075,7 @@ PUT /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1087,7 +1087,7 @@ PUT /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1125,7 +1125,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1137,7 +1137,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1248,7 +1248,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1260,7 +1260,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1306,7 +1306,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1318,7 +1318,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1366,7 +1366,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | | dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | | dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | | dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | @@ -1383,7 +1383,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { - "dbSchemaId": "dbSchemaId-example", + "dbSchemaId": "550e8400-e29b-41d4-a716-446655440000", "dbSchemaName": "dbSchemaName-example", "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" @@ -1426,7 +1426,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1438,7 +1438,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1466,7 +1466,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1478,7 +1478,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1506,7 +1506,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | | dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | | dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | | dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | @@ -1528,7 +1528,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { - "dbUserId": "dbUserId-example", + "dbUserId": "550e8400-e29b-41d4-a716-446655440000", "dbUserName": "dbUserName-example", "host": "host-example", "authorityType": "CUSTOM", @@ -1586,7 +1586,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1598,7 +1598,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1626,7 +1626,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1638,7 +1638,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1683,7 +1683,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1695,7 +1695,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1786,7 +1786,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/high-availability | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1798,7 +1798,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/high-availability "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1825,7 +1825,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1837,7 +1837,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1864,7 +1864,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1876,7 +1876,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1903,7 +1903,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1915,7 +1915,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1942,7 +1942,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/split | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1954,7 +1954,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/split "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2052,7 +2052,7 @@ POST /v3.0/db-instances/{dbInstanceId}/log-files/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2064,7 +2064,7 @@ POST /v3.0/db-instances/{dbInstanceId}/log-files/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2093,7 +2093,7 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info |-----|-----|-----|-----| | availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | | subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetId | Body | UUID | 서브넷의 식별자 | | subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnet.subnetCidr | Body | String | 서브넷의 CIDR | | endPoints | Body | Array | 접속 정보 목록 | @@ -2111,9 +2111,9 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "availabilityZone-example", + "availabilityZone": "kr-pub-a", "subnet": { - "subnetId": "subnetId-example", + "subnetId": "550e8400-e29b-41d4-a716-446655440000", "subnetName": "subnetName-example", "subnetCidr": "subnetCidr-example" }, @@ -2161,7 +2161,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/network-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2173,7 +2173,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2200,7 +2200,7 @@ POST /v3.0/db-instances/{dbInstanceId}/promote | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2212,7 +2212,7 @@ POST /v3.0/db-instances/{dbInstanceId}/promote "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2273,10 +2273,10 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "useDeletionProtection": false, "network": { "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -2302,7 +2302,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2314,7 +2314,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2358,7 +2358,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restart | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2370,7 +2370,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restart "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2522,13 +2522,13 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "imageId": "550e8400-e29b-41d4-a716-446655440000", "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -2566,7 +2566,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2578,7 +2578,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2605,7 +2605,7 @@ POST /v3.0/db-instances/{dbInstanceId}/start | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2617,7 +2617,7 @@ POST /v3.0/db-instances/{dbInstanceId}/start "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2644,7 +2644,7 @@ POST /v3.0/db-instances/{dbInstanceId}/stop | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2656,7 +2656,7 @@ POST /v3.0/db-instances/{dbInstanceId}/stop "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2697,7 +2697,7 @@ GET /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 1, "storageStatus": "DELETED" } @@ -2737,7 +2737,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2749,7 +2749,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2786,10 +2786,10 @@ GET /v3.0/backups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 백업 목록 수 | | backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupId | Body | UUID | 백업의 식별자 | | backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backups.dbVersion | Body | Enum | DB 엔진 유형 | | backups.utilVersion | Body | String | 유틸리티 버전 | | backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -2810,11 +2810,11 @@ GET /v3.0/backups "totalCounts": 1, "backups": [ { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbVersion": "ENUM_VALUE", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupSize": 1, @@ -2848,7 +2848,7 @@ DELETE /v3.0/backups/{backupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2860,7 +2860,7 @@ DELETE /v3.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2906,7 +2906,7 @@ POST /v3.0/backups/{backupId}/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2918,7 +2918,7 @@ POST /v3.0/backups/{backupId}/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2985,10 +2985,10 @@ POST /v3.0/backups/{backupId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -3014,7 +3014,7 @@ POST /v3.0/backups/{backupId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3026,7 +3026,7 @@ POST /v3.0/backups/{backupId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3061,7 +3061,7 @@ GET /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | @@ -3080,7 +3080,7 @@ GET /v3.0/db-security-groups }, "dbSecurityGroups": [ { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", @@ -3148,7 +3148,7 @@ POST /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 |

예시

@@ -3160,7 +3160,7 @@ POST /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3208,12 +3208,12 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSecurityGroup | Body | Object | DB 보안 그룹 | -| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | | dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | -| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | | dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | | dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | | dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | @@ -3238,13 +3238,13 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "isSuccessful": true }, "dbSecurityGroup": { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", "rules": [ { - "ruleId": "ruleId-example", + "ruleId": "550e8400-e29b-41d4-a716-446655440000", "description": "description-example", "direction": "INGRESS", "etherType": "IPV4", @@ -3321,7 +3321,7 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3333,7 +3333,7 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3386,7 +3386,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3398,7 +3398,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3452,7 +3452,7 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3464,7 +3464,7 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3490,7 +3490,7 @@ GET /v3.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | | parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | @@ -3510,10 +3510,10 @@ GET /v3.0/parameter-groups }, "parameterGroups": [ { - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -3548,7 +3548,7 @@ POST /v3.0/parameter-groups { "parameterGroupName": "parameterGroupName", "description": "description-example", - "dbVersion": "ENUM_VALUE" + "dbVersion": "MYSQL_V8036" } ``` @@ -3559,7 +3559,7 @@ POST /v3.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -3571,7 +3571,7 @@ POST /v3.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3618,13 +3618,13 @@ GET /v3.0/parameter-groups/{parameterGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | description | Body | String | 파라미터 그룹에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | | parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | | parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterId | Body | UUID | 파라미터의 식별자 | | parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | | parameters.parameterName | Body | String | 파라미터 이름 | | parameters.fileParameterName | Body | String | 파라미터 파일 이름 | @@ -3646,14 +3646,14 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "parameters": [ { - "parameterId": "parameterId-example", + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "parameterFileGroup": "CLIENT", "parameterName": "parameterName-example", "fileParameterName": "fileParameterName-example", @@ -3738,7 +3738,7 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -3750,7 +3750,7 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3834,7 +3834,7 @@ GET /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroups.createdYmdt | Body | DateTime | 생성 일시 | | userGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -3851,7 +3851,7 @@ GET /v3.0/user-groups }, "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -3897,7 +3897,7 @@ POST /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 |

예시

@@ -3909,7 +3909,7 @@ POST /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "userGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3956,11 +3956,11 @@ GET /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -3974,12 +3974,12 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "userGroupTypeCode": "ENTIRE", "members": [ { - "memberId": "memberId-example" + "memberId": "550e8400-e29b-41d4-a716-446655440000" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4044,7 +4044,7 @@ GET /v3.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | | notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | @@ -4064,7 +4064,7 @@ GET /v3.0/notification-groups }, "notificationGroups": [ { - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, @@ -4119,7 +4119,7 @@ POST /v3.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 |

예시

@@ -4131,7 +4131,7 @@ POST /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example" + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4178,16 +4178,16 @@ GET /v3.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notifyEmail | Body | Boolean | 이메일 알림 여부 | | notifySms | Body | Boolean | SMS 알림 여부 | | isEnabled | Body | Boolean | 활성화 여부 | | dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4202,20 +4202,20 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, "isEnabled": false, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example" } ], @@ -4464,7 +4464,7 @@ GET /v3.0/event-subscriptions |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | | eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | | eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | | eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | | eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | @@ -4490,7 +4490,7 @@ GET /v3.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "eventSubscriptionId-example", + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL", "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, @@ -4564,7 +4564,7 @@ POST /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 |

예시

@@ -4576,7 +4576,7 @@ POST /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000" } ``` diff --git a/ko/api-guide-v3.0-ngoic.md b/ko/api-guide-v3.0-ngoic.md index a633809e..5767a13b 100644 --- a/ko/api-guide-v3.0-ngoic.md +++ b/ko/api-guide-v3.0-ngoic.md @@ -107,7 +107,7 @@ GET /v3.0/project/members | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | members.memberName | Body | String | 프로젝트 멤버의 이름 | | members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | | members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | @@ -124,7 +124,7 @@ GET /v3.0/project/members }, "members": [ { - "memberId": "memberId-example", + "memberId": "550e8400-e29b-41d4-a716-446655440000", "memberName": "memberName-example", "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" @@ -197,7 +197,7 @@ GET /v3.0/db-flavors | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | | dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | | dbFlavors.ram | Body | Number | 메모리 용량(MB) | | dbFlavors.vcpus | Body | Number | CPU 코어 수 | @@ -214,7 +214,7 @@ GET /v3.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "dbFlavorId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbFlavorName": "dbFlavorName-example", "ram": 1, "vcpus": 1 @@ -311,7 +311,7 @@ GET /v3.0/db-versions }, "dbVersions": [ { - "dbVersion": "dbVersion-example", + "dbVersion": "MYSQL_V8036", "dbVersionName": "dbVersionName-example", "restorableFromObs": false } @@ -433,7 +433,7 @@ GET /v3.0/jobs/{jobId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 | | jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | | resourceRelations | Body | Array | 연관 리소스 목록 | | resourceRelations.resourceType | Body | String | 연관 리소스 유형 | @@ -451,7 +451,7 @@ GET /v3.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", + "jobId": "550e8400-e29b-41d4-a716-446655440000", "jobStatus": "DELETED", "resourceRelations": [ { @@ -486,7 +486,7 @@ GET /v3.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | | dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -503,7 +503,7 @@ GET /v3.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -535,10 +535,10 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | createdYmdt | Body | DateTime | 생성 일시 | @@ -554,11 +554,11 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } @@ -635,8 +635,8 @@ GET /v3.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | @@ -659,11 +659,11 @@ GET /v3.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", @@ -733,7 +733,7 @@ POST /v3.0/db-instances "dbInstanceCandidateName": "dbInstanceCandidateName", "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbUserName": "dbUserName", "dbPassword": "dbPassword", @@ -749,10 +749,10 @@ POST /v3.0/db-instances "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -778,7 +778,7 @@ POST /v3.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -790,7 +790,7 @@ POST /v3.0/db-instances "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -856,18 +856,18 @@ POST /v3.0/db-instances/restore-from-obs "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbPort": 1, - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useHighAvailability": false, "imageId": "550e8400-e29b-41d4-a716-446655440000", "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -924,7 +924,7 @@ DELETE /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -936,7 +936,7 @@ DELETE /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -963,8 +963,8 @@ GET /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | @@ -972,8 +972,8 @@ GET /v3.0/db-instances/{dbInstanceId} | dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | -| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | | dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | | notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | | useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | @@ -994,17 +994,17 @@ GET /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", "progressStatus": "NONE", - "dbFlavorId": "dbFlavorId-example", - "parameterGroupId": "parameterGroupId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupIds": [], "notificationGroupIds": [], "useDeletionProtection": false, @@ -1058,7 +1058,7 @@ PUT /v3.0/db-instances/{dbInstanceId} "dbPort": 1, "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useDummy": false, "dbSecurityGroupIds": [], "executeBackup": false, @@ -1075,7 +1075,7 @@ PUT /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1087,7 +1087,7 @@ PUT /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1125,7 +1125,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1137,7 +1137,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1248,7 +1248,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1260,7 +1260,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1306,7 +1306,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1318,7 +1318,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1366,7 +1366,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | | dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | | dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | | dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | @@ -1383,7 +1383,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { - "dbSchemaId": "dbSchemaId-example", + "dbSchemaId": "550e8400-e29b-41d4-a716-446655440000", "dbSchemaName": "dbSchemaName-example", "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" @@ -1426,7 +1426,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1438,7 +1438,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1466,7 +1466,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1478,7 +1478,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1506,7 +1506,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | | dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | | dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | | dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | @@ -1528,7 +1528,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { - "dbUserId": "dbUserId-example", + "dbUserId": "550e8400-e29b-41d4-a716-446655440000", "dbUserName": "dbUserName-example", "host": "host-example", "authorityType": "CUSTOM", @@ -1586,7 +1586,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1598,7 +1598,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1626,7 +1626,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1638,7 +1638,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1683,7 +1683,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1695,7 +1695,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1786,7 +1786,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/high-availability | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1798,7 +1798,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/high-availability "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1825,7 +1825,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1837,7 +1837,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1864,7 +1864,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1876,7 +1876,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1903,7 +1903,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1915,7 +1915,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1942,7 +1942,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/split | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1954,7 +1954,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/split "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2052,7 +2052,7 @@ POST /v3.0/db-instances/{dbInstanceId}/log-files/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2064,7 +2064,7 @@ POST /v3.0/db-instances/{dbInstanceId}/log-files/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2093,7 +2093,7 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info |-----|-----|-----|-----| | availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | | subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetId | Body | UUID | 서브넷의 식별자 | | subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnet.subnetCidr | Body | String | 서브넷의 CIDR | | endPoints | Body | Array | 접속 정보 목록 | @@ -2111,9 +2111,9 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "availabilityZone-example", + "availabilityZone": "kr-pub-a", "subnet": { - "subnetId": "subnetId-example", + "subnetId": "550e8400-e29b-41d4-a716-446655440000", "subnetName": "subnetName-example", "subnetCidr": "subnetCidr-example" }, @@ -2161,7 +2161,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/network-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2173,7 +2173,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2200,7 +2200,7 @@ POST /v3.0/db-instances/{dbInstanceId}/promote | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2212,7 +2212,7 @@ POST /v3.0/db-instances/{dbInstanceId}/promote "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2273,10 +2273,10 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "useDeletionProtection": false, "network": { "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -2302,7 +2302,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2314,7 +2314,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2358,7 +2358,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restart | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2370,7 +2370,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restart "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2522,13 +2522,13 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "imageId": "550e8400-e29b-41d4-a716-446655440000", "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -2566,7 +2566,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2578,7 +2578,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2605,7 +2605,7 @@ POST /v3.0/db-instances/{dbInstanceId}/start | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2617,7 +2617,7 @@ POST /v3.0/db-instances/{dbInstanceId}/start "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2644,7 +2644,7 @@ POST /v3.0/db-instances/{dbInstanceId}/stop | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2656,7 +2656,7 @@ POST /v3.0/db-instances/{dbInstanceId}/stop "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2697,7 +2697,7 @@ GET /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 1, "storageStatus": "DELETED" } @@ -2737,7 +2737,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2749,7 +2749,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2786,10 +2786,10 @@ GET /v3.0/backups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 백업 목록 수 | | backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupId | Body | UUID | 백업의 식별자 | | backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backups.dbVersion | Body | Enum | DB 엔진 유형 | | backups.utilVersion | Body | String | 유틸리티 버전 | | backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -2810,11 +2810,11 @@ GET /v3.0/backups "totalCounts": 1, "backups": [ { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbVersion": "ENUM_VALUE", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupSize": 1, @@ -2848,7 +2848,7 @@ DELETE /v3.0/backups/{backupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2860,7 +2860,7 @@ DELETE /v3.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2906,7 +2906,7 @@ POST /v3.0/backups/{backupId}/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2918,7 +2918,7 @@ POST /v3.0/backups/{backupId}/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2985,10 +2985,10 @@ POST /v3.0/backups/{backupId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -3014,7 +3014,7 @@ POST /v3.0/backups/{backupId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3026,7 +3026,7 @@ POST /v3.0/backups/{backupId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3061,7 +3061,7 @@ GET /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | @@ -3080,7 +3080,7 @@ GET /v3.0/db-security-groups }, "dbSecurityGroups": [ { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", @@ -3148,7 +3148,7 @@ POST /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 |

예시

@@ -3160,7 +3160,7 @@ POST /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3208,12 +3208,12 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSecurityGroup | Body | Object | DB 보안 그룹 | -| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | | dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | -| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | | dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | | dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | | dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | @@ -3238,13 +3238,13 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "isSuccessful": true }, "dbSecurityGroup": { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", "rules": [ { - "ruleId": "ruleId-example", + "ruleId": "550e8400-e29b-41d4-a716-446655440000", "description": "description-example", "direction": "INGRESS", "etherType": "IPV4", @@ -3321,7 +3321,7 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3333,7 +3333,7 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3386,7 +3386,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3398,7 +3398,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3452,7 +3452,7 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3464,7 +3464,7 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3490,7 +3490,7 @@ GET /v3.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | | parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | @@ -3510,10 +3510,10 @@ GET /v3.0/parameter-groups }, "parameterGroups": [ { - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -3548,7 +3548,7 @@ POST /v3.0/parameter-groups { "parameterGroupName": "parameterGroupName", "description": "description-example", - "dbVersion": "ENUM_VALUE" + "dbVersion": "MYSQL_V8036" } ``` @@ -3559,7 +3559,7 @@ POST /v3.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -3571,7 +3571,7 @@ POST /v3.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3618,13 +3618,13 @@ GET /v3.0/parameter-groups/{parameterGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | description | Body | String | 파라미터 그룹에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | | parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | | parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterId | Body | UUID | 파라미터의 식별자 | | parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | | parameters.parameterName | Body | String | 파라미터 이름 | | parameters.fileParameterName | Body | String | 파라미터 파일 이름 | @@ -3646,14 +3646,14 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "parameters": [ { - "parameterId": "parameterId-example", + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "parameterFileGroup": "CLIENT", "parameterName": "parameterName-example", "fileParameterName": "fileParameterName-example", @@ -3738,7 +3738,7 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -3750,7 +3750,7 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3834,7 +3834,7 @@ GET /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroups.createdYmdt | Body | DateTime | 생성 일시 | | userGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -3851,7 +3851,7 @@ GET /v3.0/user-groups }, "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -3897,7 +3897,7 @@ POST /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 |

예시

@@ -3909,7 +3909,7 @@ POST /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "userGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3956,11 +3956,11 @@ GET /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -3974,12 +3974,12 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "userGroupTypeCode": "ENTIRE", "members": [ { - "memberId": "memberId-example" + "memberId": "550e8400-e29b-41d4-a716-446655440000" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4044,7 +4044,7 @@ GET /v3.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | | notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | @@ -4064,7 +4064,7 @@ GET /v3.0/notification-groups }, "notificationGroups": [ { - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, @@ -4119,7 +4119,7 @@ POST /v3.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 |

예시

@@ -4131,7 +4131,7 @@ POST /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example" + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4178,16 +4178,16 @@ GET /v3.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notifyEmail | Body | Boolean | 이메일 알림 여부 | | notifySms | Body | Boolean | SMS 알림 여부 | | isEnabled | Body | Boolean | 활성화 여부 | | dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4202,20 +4202,20 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, "isEnabled": false, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example" } ], @@ -4464,7 +4464,7 @@ GET /v3.0/event-subscriptions |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | | eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | | eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | | eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | | eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | @@ -4490,7 +4490,7 @@ GET /v3.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "eventSubscriptionId-example", + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL", "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, @@ -4564,7 +4564,7 @@ POST /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 |

예시

@@ -4576,7 +4576,7 @@ POST /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000" } ``` diff --git a/ko/api-guide-v3.0-ngovc.md b/ko/api-guide-v3.0-ngovc.md index fd6c21a9..96bd4dfd 100644 --- a/ko/api-guide-v3.0-ngovc.md +++ b/ko/api-guide-v3.0-ngovc.md @@ -107,7 +107,7 @@ GET /v3.0/project/members | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | members.memberName | Body | String | 프로젝트 멤버의 이름 | | members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | | members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | @@ -124,7 +124,7 @@ GET /v3.0/project/members }, "members": [ { - "memberId": "memberId-example", + "memberId": "550e8400-e29b-41d4-a716-446655440000", "memberName": "memberName-example", "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" @@ -197,7 +197,7 @@ GET /v3.0/db-flavors | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | | dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | | dbFlavors.ram | Body | Number | 메모리 용량(MB) | | dbFlavors.vcpus | Body | Number | CPU 코어 수 | @@ -214,7 +214,7 @@ GET /v3.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "dbFlavorId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbFlavorName": "dbFlavorName-example", "ram": 1, "vcpus": 1 @@ -311,7 +311,7 @@ GET /v3.0/db-versions }, "dbVersions": [ { - "dbVersion": "dbVersion-example", + "dbVersion": "MYSQL_V8036", "dbVersionName": "dbVersionName-example", "restorableFromObs": false } @@ -433,7 +433,7 @@ GET /v3.0/jobs/{jobId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 | | jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | | resourceRelations | Body | Array | 연관 리소스 목록 | | resourceRelations.resourceType | Body | String | 연관 리소스 유형 | @@ -451,7 +451,7 @@ GET /v3.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", + "jobId": "550e8400-e29b-41d4-a716-446655440000", "jobStatus": "DELETED", "resourceRelations": [ { @@ -486,7 +486,7 @@ GET /v3.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | | dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -503,7 +503,7 @@ GET /v3.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -535,10 +535,10 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | createdYmdt | Body | DateTime | 생성 일시 | @@ -554,11 +554,11 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } @@ -635,8 +635,8 @@ GET /v3.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | @@ -659,11 +659,11 @@ GET /v3.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", @@ -733,7 +733,7 @@ POST /v3.0/db-instances "dbInstanceCandidateName": "dbInstanceCandidateName", "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbUserName": "dbUserName", "dbPassword": "dbPassword", @@ -749,10 +749,10 @@ POST /v3.0/db-instances "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -778,7 +778,7 @@ POST /v3.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -790,7 +790,7 @@ POST /v3.0/db-instances "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -856,18 +856,18 @@ POST /v3.0/db-instances/restore-from-obs "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbPort": 1, - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useHighAvailability": false, "imageId": "550e8400-e29b-41d4-a716-446655440000", "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -924,7 +924,7 @@ DELETE /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -936,7 +936,7 @@ DELETE /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -963,8 +963,8 @@ GET /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | @@ -972,8 +972,8 @@ GET /v3.0/db-instances/{dbInstanceId} | dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | -| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | | dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | | notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | | useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | @@ -994,17 +994,17 @@ GET /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", "progressStatus": "NONE", - "dbFlavorId": "dbFlavorId-example", - "parameterGroupId": "parameterGroupId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupIds": [], "notificationGroupIds": [], "useDeletionProtection": false, @@ -1058,7 +1058,7 @@ PUT /v3.0/db-instances/{dbInstanceId} "dbPort": 1, "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useDummy": false, "dbSecurityGroupIds": [], "executeBackup": false, @@ -1075,7 +1075,7 @@ PUT /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1087,7 +1087,7 @@ PUT /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1125,7 +1125,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1137,7 +1137,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1248,7 +1248,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1260,7 +1260,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1306,7 +1306,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1318,7 +1318,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1366,7 +1366,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | | dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | | dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | | dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | @@ -1383,7 +1383,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { - "dbSchemaId": "dbSchemaId-example", + "dbSchemaId": "550e8400-e29b-41d4-a716-446655440000", "dbSchemaName": "dbSchemaName-example", "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" @@ -1426,7 +1426,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1438,7 +1438,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1466,7 +1466,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1478,7 +1478,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1506,7 +1506,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | | dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | | dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | | dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | @@ -1528,7 +1528,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { - "dbUserId": "dbUserId-example", + "dbUserId": "550e8400-e29b-41d4-a716-446655440000", "dbUserName": "dbUserName-example", "host": "host-example", "authorityType": "CUSTOM", @@ -1586,7 +1586,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1598,7 +1598,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1626,7 +1626,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1638,7 +1638,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1683,7 +1683,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1695,7 +1695,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1786,7 +1786,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/high-availability | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1798,7 +1798,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/high-availability "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1825,7 +1825,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1837,7 +1837,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1864,7 +1864,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1876,7 +1876,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1903,7 +1903,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1915,7 +1915,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1942,7 +1942,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/split | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1954,7 +1954,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/split "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2052,7 +2052,7 @@ POST /v3.0/db-instances/{dbInstanceId}/log-files/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2064,7 +2064,7 @@ POST /v3.0/db-instances/{dbInstanceId}/log-files/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2093,7 +2093,7 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info |-----|-----|-----|-----| | availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | | subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetId | Body | UUID | 서브넷의 식별자 | | subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnet.subnetCidr | Body | String | 서브넷의 CIDR | | endPoints | Body | Array | 접속 정보 목록 | @@ -2111,9 +2111,9 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "availabilityZone-example", + "availabilityZone": "kr-pub-a", "subnet": { - "subnetId": "subnetId-example", + "subnetId": "550e8400-e29b-41d4-a716-446655440000", "subnetName": "subnetName-example", "subnetCidr": "subnetCidr-example" }, @@ -2161,7 +2161,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/network-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2173,7 +2173,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2200,7 +2200,7 @@ POST /v3.0/db-instances/{dbInstanceId}/promote | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2212,7 +2212,7 @@ POST /v3.0/db-instances/{dbInstanceId}/promote "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2273,10 +2273,10 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "useDeletionProtection": false, "network": { "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -2302,7 +2302,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2314,7 +2314,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2358,7 +2358,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restart | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2370,7 +2370,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restart "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2522,13 +2522,13 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "imageId": "550e8400-e29b-41d4-a716-446655440000", "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -2566,7 +2566,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2578,7 +2578,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2605,7 +2605,7 @@ POST /v3.0/db-instances/{dbInstanceId}/start | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2617,7 +2617,7 @@ POST /v3.0/db-instances/{dbInstanceId}/start "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2644,7 +2644,7 @@ POST /v3.0/db-instances/{dbInstanceId}/stop | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2656,7 +2656,7 @@ POST /v3.0/db-instances/{dbInstanceId}/stop "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2697,7 +2697,7 @@ GET /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 1, "storageStatus": "DELETED" } @@ -2737,7 +2737,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2749,7 +2749,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2786,10 +2786,10 @@ GET /v3.0/backups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 백업 목록 수 | | backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupId | Body | UUID | 백업의 식별자 | | backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backups.dbVersion | Body | Enum | DB 엔진 유형 | | backups.utilVersion | Body | String | 유틸리티 버전 | | backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -2810,11 +2810,11 @@ GET /v3.0/backups "totalCounts": 1, "backups": [ { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbVersion": "ENUM_VALUE", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupSize": 1, @@ -2848,7 +2848,7 @@ DELETE /v3.0/backups/{backupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2860,7 +2860,7 @@ DELETE /v3.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2906,7 +2906,7 @@ POST /v3.0/backups/{backupId}/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2918,7 +2918,7 @@ POST /v3.0/backups/{backupId}/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2985,10 +2985,10 @@ POST /v3.0/backups/{backupId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -3014,7 +3014,7 @@ POST /v3.0/backups/{backupId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3026,7 +3026,7 @@ POST /v3.0/backups/{backupId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3061,7 +3061,7 @@ GET /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | @@ -3080,7 +3080,7 @@ GET /v3.0/db-security-groups }, "dbSecurityGroups": [ { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", @@ -3148,7 +3148,7 @@ POST /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 |

예시

@@ -3160,7 +3160,7 @@ POST /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3208,12 +3208,12 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSecurityGroup | Body | Object | DB 보안 그룹 | -| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | | dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | -| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | | dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | | dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | | dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | @@ -3238,13 +3238,13 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "isSuccessful": true }, "dbSecurityGroup": { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", "rules": [ { - "ruleId": "ruleId-example", + "ruleId": "550e8400-e29b-41d4-a716-446655440000", "description": "description-example", "direction": "INGRESS", "etherType": "IPV4", @@ -3321,7 +3321,7 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3333,7 +3333,7 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3386,7 +3386,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3398,7 +3398,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3452,7 +3452,7 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3464,7 +3464,7 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3490,7 +3490,7 @@ GET /v3.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | | parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | @@ -3510,10 +3510,10 @@ GET /v3.0/parameter-groups }, "parameterGroups": [ { - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -3548,7 +3548,7 @@ POST /v3.0/parameter-groups { "parameterGroupName": "parameterGroupName", "description": "description-example", - "dbVersion": "ENUM_VALUE" + "dbVersion": "MYSQL_V8036" } ``` @@ -3559,7 +3559,7 @@ POST /v3.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -3571,7 +3571,7 @@ POST /v3.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3618,13 +3618,13 @@ GET /v3.0/parameter-groups/{parameterGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | description | Body | String | 파라미터 그룹에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | | parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | | parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterId | Body | UUID | 파라미터의 식별자 | | parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | | parameters.parameterName | Body | String | 파라미터 이름 | | parameters.fileParameterName | Body | String | 파라미터 파일 이름 | @@ -3646,14 +3646,14 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "parameters": [ { - "parameterId": "parameterId-example", + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "parameterFileGroup": "CLIENT", "parameterName": "parameterName-example", "fileParameterName": "fileParameterName-example", @@ -3738,7 +3738,7 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -3750,7 +3750,7 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3834,7 +3834,7 @@ GET /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroups.createdYmdt | Body | DateTime | 생성 일시 | | userGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -3851,7 +3851,7 @@ GET /v3.0/user-groups }, "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -3897,7 +3897,7 @@ POST /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 |

예시

@@ -3909,7 +3909,7 @@ POST /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "userGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3956,11 +3956,11 @@ GET /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -3974,12 +3974,12 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "userGroupTypeCode": "ENTIRE", "members": [ { - "memberId": "memberId-example" + "memberId": "550e8400-e29b-41d4-a716-446655440000" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4044,7 +4044,7 @@ GET /v3.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | | notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | @@ -4064,7 +4064,7 @@ GET /v3.0/notification-groups }, "notificationGroups": [ { - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, @@ -4119,7 +4119,7 @@ POST /v3.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 |

예시

@@ -4131,7 +4131,7 @@ POST /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example" + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4178,16 +4178,16 @@ GET /v3.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notifyEmail | Body | Boolean | 이메일 알림 여부 | | notifySms | Body | Boolean | SMS 알림 여부 | | isEnabled | Body | Boolean | 활성화 여부 | | dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4202,20 +4202,20 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, "isEnabled": false, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example" } ], @@ -4464,7 +4464,7 @@ GET /v3.0/event-subscriptions |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | | eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | | eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | | eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | | eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | @@ -4490,7 +4490,7 @@ GET /v3.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "eventSubscriptionId-example", + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL", "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, @@ -4564,7 +4564,7 @@ POST /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 |

예시

@@ -4576,7 +4576,7 @@ POST /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000" } ``` diff --git a/ko/api-guide-v3.0-ngsc.md b/ko/api-guide-v3.0-ngsc.md index 04511165..308ba8ec 100644 --- a/ko/api-guide-v3.0-ngsc.md +++ b/ko/api-guide-v3.0-ngsc.md @@ -107,7 +107,7 @@ GET /v3.0/project/members | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | members.memberName | Body | String | 프로젝트 멤버의 이름 | | members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | | members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | @@ -124,7 +124,7 @@ GET /v3.0/project/members }, "members": [ { - "memberId": "memberId-example", + "memberId": "550e8400-e29b-41d4-a716-446655440000", "memberName": "memberName-example", "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" @@ -197,7 +197,7 @@ GET /v3.0/db-flavors | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | | dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | | dbFlavors.ram | Body | Number | 메모리 용량(MB) | | dbFlavors.vcpus | Body | Number | CPU 코어 수 | @@ -214,7 +214,7 @@ GET /v3.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "dbFlavorId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbFlavorName": "dbFlavorName-example", "ram": 1, "vcpus": 1 @@ -311,7 +311,7 @@ GET /v3.0/db-versions }, "dbVersions": [ { - "dbVersion": "dbVersion-example", + "dbVersion": "MYSQL_V8036", "dbVersionName": "dbVersionName-example", "restorableFromObs": false } @@ -433,7 +433,7 @@ GET /v3.0/jobs/{jobId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 | | jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | | resourceRelations | Body | Array | 연관 리소스 목록 | | resourceRelations.resourceType | Body | String | 연관 리소스 유형 | @@ -451,7 +451,7 @@ GET /v3.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", + "jobId": "550e8400-e29b-41d4-a716-446655440000", "jobStatus": "DELETED", "resourceRelations": [ { @@ -486,7 +486,7 @@ GET /v3.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | | dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -503,7 +503,7 @@ GET /v3.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -535,10 +535,10 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | createdYmdt | Body | DateTime | 생성 일시 | @@ -554,11 +554,11 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } @@ -635,8 +635,8 @@ GET /v3.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | @@ -659,11 +659,11 @@ GET /v3.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", @@ -733,7 +733,7 @@ POST /v3.0/db-instances "dbInstanceCandidateName": "dbInstanceCandidateName", "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbUserName": "dbUserName", "dbPassword": "dbPassword", @@ -749,10 +749,10 @@ POST /v3.0/db-instances "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -778,7 +778,7 @@ POST /v3.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -790,7 +790,7 @@ POST /v3.0/db-instances "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -856,18 +856,18 @@ POST /v3.0/db-instances/restore-from-obs "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbPort": 1, - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useHighAvailability": false, "imageId": "550e8400-e29b-41d4-a716-446655440000", "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -924,7 +924,7 @@ DELETE /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -936,7 +936,7 @@ DELETE /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -963,8 +963,8 @@ GET /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | @@ -972,8 +972,8 @@ GET /v3.0/db-instances/{dbInstanceId} | dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | -| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | | dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | | notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | | useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | @@ -994,17 +994,17 @@ GET /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", "progressStatus": "NONE", - "dbFlavorId": "dbFlavorId-example", - "parameterGroupId": "parameterGroupId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupIds": [], "notificationGroupIds": [], "useDeletionProtection": false, @@ -1058,7 +1058,7 @@ PUT /v3.0/db-instances/{dbInstanceId} "dbPort": 1, "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useDummy": false, "dbSecurityGroupIds": [], "executeBackup": false, @@ -1075,7 +1075,7 @@ PUT /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1087,7 +1087,7 @@ PUT /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1125,7 +1125,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1137,7 +1137,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1248,7 +1248,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1260,7 +1260,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1306,7 +1306,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1318,7 +1318,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1366,7 +1366,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | | dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | | dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | | dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | @@ -1383,7 +1383,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { - "dbSchemaId": "dbSchemaId-example", + "dbSchemaId": "550e8400-e29b-41d4-a716-446655440000", "dbSchemaName": "dbSchemaName-example", "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" @@ -1426,7 +1426,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1438,7 +1438,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1466,7 +1466,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1478,7 +1478,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1506,7 +1506,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | | dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | | dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | | dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | @@ -1528,7 +1528,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { - "dbUserId": "dbUserId-example", + "dbUserId": "550e8400-e29b-41d4-a716-446655440000", "dbUserName": "dbUserName-example", "host": "host-example", "authorityType": "CUSTOM", @@ -1586,7 +1586,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1598,7 +1598,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1626,7 +1626,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1638,7 +1638,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1683,7 +1683,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1695,7 +1695,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1786,7 +1786,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/high-availability | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1798,7 +1798,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/high-availability "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1825,7 +1825,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1837,7 +1837,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1864,7 +1864,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1876,7 +1876,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1903,7 +1903,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1915,7 +1915,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1942,7 +1942,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/split | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1954,7 +1954,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/split "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2052,7 +2052,7 @@ POST /v3.0/db-instances/{dbInstanceId}/log-files/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2064,7 +2064,7 @@ POST /v3.0/db-instances/{dbInstanceId}/log-files/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2093,7 +2093,7 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info |-----|-----|-----|-----| | availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | | subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetId | Body | UUID | 서브넷의 식별자 | | subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnet.subnetCidr | Body | String | 서브넷의 CIDR | | endPoints | Body | Array | 접속 정보 목록 | @@ -2111,9 +2111,9 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "availabilityZone-example", + "availabilityZone": "kr-pub-a", "subnet": { - "subnetId": "subnetId-example", + "subnetId": "550e8400-e29b-41d4-a716-446655440000", "subnetName": "subnetName-example", "subnetCidr": "subnetCidr-example" }, @@ -2161,7 +2161,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/network-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2173,7 +2173,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2200,7 +2200,7 @@ POST /v3.0/db-instances/{dbInstanceId}/promote | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2212,7 +2212,7 @@ POST /v3.0/db-instances/{dbInstanceId}/promote "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2273,10 +2273,10 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "useDeletionProtection": false, "network": { "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -2302,7 +2302,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2314,7 +2314,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2358,7 +2358,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restart | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2370,7 +2370,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restart "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2522,13 +2522,13 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "imageId": "550e8400-e29b-41d4-a716-446655440000", "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -2566,7 +2566,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2578,7 +2578,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2605,7 +2605,7 @@ POST /v3.0/db-instances/{dbInstanceId}/start | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2617,7 +2617,7 @@ POST /v3.0/db-instances/{dbInstanceId}/start "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2644,7 +2644,7 @@ POST /v3.0/db-instances/{dbInstanceId}/stop | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2656,7 +2656,7 @@ POST /v3.0/db-instances/{dbInstanceId}/stop "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2697,7 +2697,7 @@ GET /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 1, "storageStatus": "DELETED" } @@ -2737,7 +2737,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2749,7 +2749,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2786,10 +2786,10 @@ GET /v3.0/backups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 백업 목록 수 | | backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupId | Body | UUID | 백업의 식별자 | | backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backups.dbVersion | Body | Enum | DB 엔진 유형 | | backups.utilVersion | Body | String | 유틸리티 버전 | | backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -2810,11 +2810,11 @@ GET /v3.0/backups "totalCounts": 1, "backups": [ { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbVersion": "ENUM_VALUE", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupSize": 1, @@ -2848,7 +2848,7 @@ DELETE /v3.0/backups/{backupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2860,7 +2860,7 @@ DELETE /v3.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2906,7 +2906,7 @@ POST /v3.0/backups/{backupId}/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2918,7 +2918,7 @@ POST /v3.0/backups/{backupId}/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2985,10 +2985,10 @@ POST /v3.0/backups/{backupId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -3014,7 +3014,7 @@ POST /v3.0/backups/{backupId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3026,7 +3026,7 @@ POST /v3.0/backups/{backupId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3061,7 +3061,7 @@ GET /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | @@ -3080,7 +3080,7 @@ GET /v3.0/db-security-groups }, "dbSecurityGroups": [ { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", @@ -3148,7 +3148,7 @@ POST /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 |

예시

@@ -3160,7 +3160,7 @@ POST /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3208,12 +3208,12 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSecurityGroup | Body | Object | DB 보안 그룹 | -| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | | dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | -| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | | dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | | dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | | dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | @@ -3238,13 +3238,13 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "isSuccessful": true }, "dbSecurityGroup": { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", "rules": [ { - "ruleId": "ruleId-example", + "ruleId": "550e8400-e29b-41d4-a716-446655440000", "description": "description-example", "direction": "INGRESS", "etherType": "IPV4", @@ -3321,7 +3321,7 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3333,7 +3333,7 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3386,7 +3386,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3398,7 +3398,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3452,7 +3452,7 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3464,7 +3464,7 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3490,7 +3490,7 @@ GET /v3.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | | parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | @@ -3510,10 +3510,10 @@ GET /v3.0/parameter-groups }, "parameterGroups": [ { - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -3548,7 +3548,7 @@ POST /v3.0/parameter-groups { "parameterGroupName": "parameterGroupName", "description": "description-example", - "dbVersion": "ENUM_VALUE" + "dbVersion": "MYSQL_V8036" } ``` @@ -3559,7 +3559,7 @@ POST /v3.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -3571,7 +3571,7 @@ POST /v3.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3618,13 +3618,13 @@ GET /v3.0/parameter-groups/{parameterGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | description | Body | String | 파라미터 그룹에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | | parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | | parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterId | Body | UUID | 파라미터의 식별자 | | parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | | parameters.parameterName | Body | String | 파라미터 이름 | | parameters.fileParameterName | Body | String | 파라미터 파일 이름 | @@ -3646,14 +3646,14 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "parameters": [ { - "parameterId": "parameterId-example", + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "parameterFileGroup": "CLIENT", "parameterName": "parameterName-example", "fileParameterName": "fileParameterName-example", @@ -3738,7 +3738,7 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -3750,7 +3750,7 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3834,7 +3834,7 @@ GET /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroups.createdYmdt | Body | DateTime | 생성 일시 | | userGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -3851,7 +3851,7 @@ GET /v3.0/user-groups }, "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -3897,7 +3897,7 @@ POST /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 |

예시

@@ -3909,7 +3909,7 @@ POST /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "userGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3956,11 +3956,11 @@ GET /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -3974,12 +3974,12 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "userGroupTypeCode": "ENTIRE", "members": [ { - "memberId": "memberId-example" + "memberId": "550e8400-e29b-41d4-a716-446655440000" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4044,7 +4044,7 @@ GET /v3.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | | notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | @@ -4064,7 +4064,7 @@ GET /v3.0/notification-groups }, "notificationGroups": [ { - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, @@ -4119,7 +4119,7 @@ POST /v3.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 |

예시

@@ -4131,7 +4131,7 @@ POST /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example" + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4178,16 +4178,16 @@ GET /v3.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notifyEmail | Body | Boolean | 이메일 알림 여부 | | notifySms | Body | Boolean | SMS 알림 여부 | | isEnabled | Body | Boolean | 활성화 여부 | | dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4202,20 +4202,20 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, "isEnabled": false, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example" } ], @@ -4464,7 +4464,7 @@ GET /v3.0/event-subscriptions |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | | eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | | eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | | eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | | eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | @@ -4490,7 +4490,7 @@ GET /v3.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "eventSubscriptionId-example", + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL", "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, @@ -4564,7 +4564,7 @@ POST /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 |

예시

@@ -4576,7 +4576,7 @@ POST /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000" } ``` diff --git a/ko/api-guide-v3.0-ninc.md b/ko/api-guide-v3.0-ninc.md index b490d231..d160cc5a 100644 --- a/ko/api-guide-v3.0-ninc.md +++ b/ko/api-guide-v3.0-ninc.md @@ -107,7 +107,7 @@ GET /v3.0/project/members | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | members.memberName | Body | String | 프로젝트 멤버의 이름 | | members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | | members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | @@ -124,7 +124,7 @@ GET /v3.0/project/members }, "members": [ { - "memberId": "memberId-example", + "memberId": "550e8400-e29b-41d4-a716-446655440000", "memberName": "memberName-example", "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" @@ -197,7 +197,7 @@ GET /v3.0/db-flavors | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | | dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | | dbFlavors.ram | Body | Number | 메모리 용량(MB) | | dbFlavors.vcpus | Body | Number | CPU 코어 수 | @@ -214,7 +214,7 @@ GET /v3.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "dbFlavorId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbFlavorName": "dbFlavorName-example", "ram": 1, "vcpus": 1 @@ -311,7 +311,7 @@ GET /v3.0/db-versions }, "dbVersions": [ { - "dbVersion": "dbVersion-example", + "dbVersion": "MYSQL_V8036", "dbVersionName": "dbVersionName-example", "restorableFromObs": false } @@ -433,7 +433,7 @@ GET /v3.0/jobs/{jobId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 | | jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | | resourceRelations | Body | Array | 연관 리소스 목록 | | resourceRelations.resourceType | Body | String | 연관 리소스 유형 | @@ -451,7 +451,7 @@ GET /v3.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", + "jobId": "550e8400-e29b-41d4-a716-446655440000", "jobStatus": "DELETED", "resourceRelations": [ { @@ -486,7 +486,7 @@ GET /v3.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | | dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -503,7 +503,7 @@ GET /v3.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -535,10 +535,10 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | createdYmdt | Body | DateTime | 생성 일시 | @@ -554,11 +554,11 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } @@ -635,8 +635,8 @@ GET /v3.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | @@ -659,11 +659,11 @@ GET /v3.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", @@ -733,7 +733,7 @@ POST /v3.0/db-instances "dbInstanceCandidateName": "dbInstanceCandidateName", "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbUserName": "dbUserName", "dbPassword": "dbPassword", @@ -749,10 +749,10 @@ POST /v3.0/db-instances "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -778,7 +778,7 @@ POST /v3.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -790,7 +790,7 @@ POST /v3.0/db-instances "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -856,18 +856,18 @@ POST /v3.0/db-instances/restore-from-obs "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbPort": 1, - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useHighAvailability": false, "imageId": "550e8400-e29b-41d4-a716-446655440000", "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -924,7 +924,7 @@ DELETE /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -936,7 +936,7 @@ DELETE /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -963,8 +963,8 @@ GET /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | @@ -972,8 +972,8 @@ GET /v3.0/db-instances/{dbInstanceId} | dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | -| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | | dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | | notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | | useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | @@ -994,17 +994,17 @@ GET /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", "progressStatus": "NONE", - "dbFlavorId": "dbFlavorId-example", - "parameterGroupId": "parameterGroupId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupIds": [], "notificationGroupIds": [], "useDeletionProtection": false, @@ -1058,7 +1058,7 @@ PUT /v3.0/db-instances/{dbInstanceId} "dbPort": 1, "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useDummy": false, "dbSecurityGroupIds": [], "executeBackup": false, @@ -1075,7 +1075,7 @@ PUT /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1087,7 +1087,7 @@ PUT /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1125,7 +1125,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1137,7 +1137,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1248,7 +1248,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1260,7 +1260,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1306,7 +1306,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1318,7 +1318,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1366,7 +1366,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | | dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | | dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | | dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | @@ -1383,7 +1383,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { - "dbSchemaId": "dbSchemaId-example", + "dbSchemaId": "550e8400-e29b-41d4-a716-446655440000", "dbSchemaName": "dbSchemaName-example", "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" @@ -1426,7 +1426,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1438,7 +1438,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1466,7 +1466,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1478,7 +1478,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1506,7 +1506,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | | dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | | dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | | dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | @@ -1528,7 +1528,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { - "dbUserId": "dbUserId-example", + "dbUserId": "550e8400-e29b-41d4-a716-446655440000", "dbUserName": "dbUserName-example", "host": "host-example", "authorityType": "CUSTOM", @@ -1586,7 +1586,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1598,7 +1598,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1626,7 +1626,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1638,7 +1638,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1683,7 +1683,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1695,7 +1695,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1786,7 +1786,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/high-availability | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1798,7 +1798,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/high-availability "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1825,7 +1825,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1837,7 +1837,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1864,7 +1864,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1876,7 +1876,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1903,7 +1903,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1915,7 +1915,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1942,7 +1942,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/split | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1954,7 +1954,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/split "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2052,7 +2052,7 @@ POST /v3.0/db-instances/{dbInstanceId}/log-files/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2064,7 +2064,7 @@ POST /v3.0/db-instances/{dbInstanceId}/log-files/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2093,7 +2093,7 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info |-----|-----|-----|-----| | availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | | subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetId | Body | UUID | 서브넷의 식별자 | | subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnet.subnetCidr | Body | String | 서브넷의 CIDR | | endPoints | Body | Array | 접속 정보 목록 | @@ -2111,9 +2111,9 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "availabilityZone-example", + "availabilityZone": "kr-pub-a", "subnet": { - "subnetId": "subnetId-example", + "subnetId": "550e8400-e29b-41d4-a716-446655440000", "subnetName": "subnetName-example", "subnetCidr": "subnetCidr-example" }, @@ -2161,7 +2161,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/network-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2173,7 +2173,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2200,7 +2200,7 @@ POST /v3.0/db-instances/{dbInstanceId}/promote | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2212,7 +2212,7 @@ POST /v3.0/db-instances/{dbInstanceId}/promote "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2273,10 +2273,10 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "useDeletionProtection": false, "network": { "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -2302,7 +2302,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2314,7 +2314,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2358,7 +2358,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restart | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2370,7 +2370,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restart "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2522,13 +2522,13 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "imageId": "550e8400-e29b-41d4-a716-446655440000", "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -2566,7 +2566,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2578,7 +2578,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2605,7 +2605,7 @@ POST /v3.0/db-instances/{dbInstanceId}/start | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2617,7 +2617,7 @@ POST /v3.0/db-instances/{dbInstanceId}/start "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2644,7 +2644,7 @@ POST /v3.0/db-instances/{dbInstanceId}/stop | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2656,7 +2656,7 @@ POST /v3.0/db-instances/{dbInstanceId}/stop "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2697,7 +2697,7 @@ GET /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 1, "storageStatus": "DELETED" } @@ -2737,7 +2737,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2749,7 +2749,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2786,10 +2786,10 @@ GET /v3.0/backups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 백업 목록 수 | | backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupId | Body | UUID | 백업의 식별자 | | backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backups.dbVersion | Body | Enum | DB 엔진 유형 | | backups.utilVersion | Body | String | 유틸리티 버전 | | backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -2810,11 +2810,11 @@ GET /v3.0/backups "totalCounts": 1, "backups": [ { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbVersion": "ENUM_VALUE", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupSize": 1, @@ -2848,7 +2848,7 @@ DELETE /v3.0/backups/{backupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2860,7 +2860,7 @@ DELETE /v3.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2906,7 +2906,7 @@ POST /v3.0/backups/{backupId}/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2918,7 +2918,7 @@ POST /v3.0/backups/{backupId}/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2985,10 +2985,10 @@ POST /v3.0/backups/{backupId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -3014,7 +3014,7 @@ POST /v3.0/backups/{backupId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3026,7 +3026,7 @@ POST /v3.0/backups/{backupId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3061,7 +3061,7 @@ GET /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | @@ -3080,7 +3080,7 @@ GET /v3.0/db-security-groups }, "dbSecurityGroups": [ { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", @@ -3148,7 +3148,7 @@ POST /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 |

예시

@@ -3160,7 +3160,7 @@ POST /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3208,12 +3208,12 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSecurityGroup | Body | Object | DB 보안 그룹 | -| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | | dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | -| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | | dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | | dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | | dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | @@ -3238,13 +3238,13 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "isSuccessful": true }, "dbSecurityGroup": { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", "rules": [ { - "ruleId": "ruleId-example", + "ruleId": "550e8400-e29b-41d4-a716-446655440000", "description": "description-example", "direction": "INGRESS", "etherType": "IPV4", @@ -3321,7 +3321,7 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3333,7 +3333,7 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3386,7 +3386,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3398,7 +3398,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3452,7 +3452,7 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3464,7 +3464,7 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3490,7 +3490,7 @@ GET /v3.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | | parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | @@ -3510,10 +3510,10 @@ GET /v3.0/parameter-groups }, "parameterGroups": [ { - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -3548,7 +3548,7 @@ POST /v3.0/parameter-groups { "parameterGroupName": "parameterGroupName", "description": "description-example", - "dbVersion": "ENUM_VALUE" + "dbVersion": "MYSQL_V8036" } ``` @@ -3559,7 +3559,7 @@ POST /v3.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -3571,7 +3571,7 @@ POST /v3.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3618,13 +3618,13 @@ GET /v3.0/parameter-groups/{parameterGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | description | Body | String | 파라미터 그룹에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | | parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | | parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterId | Body | UUID | 파라미터의 식별자 | | parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | | parameters.parameterName | Body | String | 파라미터 이름 | | parameters.fileParameterName | Body | String | 파라미터 파일 이름 | @@ -3646,14 +3646,14 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "parameters": [ { - "parameterId": "parameterId-example", + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "parameterFileGroup": "CLIENT", "parameterName": "parameterName-example", "fileParameterName": "fileParameterName-example", @@ -3738,7 +3738,7 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -3750,7 +3750,7 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3834,7 +3834,7 @@ GET /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroups.createdYmdt | Body | DateTime | 생성 일시 | | userGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -3851,7 +3851,7 @@ GET /v3.0/user-groups }, "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -3897,7 +3897,7 @@ POST /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 |

예시

@@ -3909,7 +3909,7 @@ POST /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "userGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3956,11 +3956,11 @@ GET /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -3974,12 +3974,12 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "userGroupTypeCode": "ENTIRE", "members": [ { - "memberId": "memberId-example" + "memberId": "550e8400-e29b-41d4-a716-446655440000" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4044,7 +4044,7 @@ GET /v3.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | | notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | @@ -4064,7 +4064,7 @@ GET /v3.0/notification-groups }, "notificationGroups": [ { - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, @@ -4119,7 +4119,7 @@ POST /v3.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 |

예시

@@ -4131,7 +4131,7 @@ POST /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example" + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4178,16 +4178,16 @@ GET /v3.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notifyEmail | Body | Boolean | 이메일 알림 여부 | | notifySms | Body | Boolean | SMS 알림 여부 | | isEnabled | Body | Boolean | 활성화 여부 | | dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4202,20 +4202,20 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, "isEnabled": false, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example" } ], @@ -4464,7 +4464,7 @@ GET /v3.0/event-subscriptions |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | | eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | | eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | | eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | | eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | @@ -4490,7 +4490,7 @@ GET /v3.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "eventSubscriptionId-example", + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL", "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, @@ -4564,7 +4564,7 @@ POST /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 |

예시

@@ -4576,7 +4576,7 @@ POST /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000" } ``` diff --git a/ko/api-guide-v3.0.md b/ko/api-guide-v3.0.md index e3f688b1..e0c324c0 100644 --- a/ko/api-guide-v3.0.md +++ b/ko/api-guide-v3.0.md @@ -109,7 +109,7 @@ GET /v3.0/project/members | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | members.memberName | Body | String | 프로젝트 멤버의 이름 | | members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | | members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | @@ -126,7 +126,7 @@ GET /v3.0/project/members }, "members": [ { - "memberId": "memberId-example", + "memberId": "550e8400-e29b-41d4-a716-446655440000", "memberName": "memberName-example", "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" @@ -199,7 +199,7 @@ GET /v3.0/db-flavors | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | | dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | | dbFlavors.ram | Body | Number | 메모리 용량(MB) | | dbFlavors.vcpus | Body | Number | CPU 코어 수 | @@ -216,7 +216,7 @@ GET /v3.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "dbFlavorId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbFlavorName": "dbFlavorName-example", "ram": 1, "vcpus": 1 @@ -313,7 +313,7 @@ GET /v3.0/db-versions }, "dbVersions": [ { - "dbVersion": "dbVersion-example", + "dbVersion": "MYSQL_V8036", "dbVersionName": "dbVersionName-example", "restorableFromObs": false } @@ -435,7 +435,7 @@ GET /v3.0/jobs/{jobId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 | | jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | | resourceRelations | Body | Array | 연관 리소스 목록 | | resourceRelations.resourceType | Body | String | 연관 리소스 유형 | @@ -453,7 +453,7 @@ GET /v3.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", + "jobId": "550e8400-e29b-41d4-a716-446655440000", "jobStatus": "DELETED", "resourceRelations": [ { @@ -488,7 +488,7 @@ GET /v3.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | | dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -505,7 +505,7 @@ GET /v3.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -537,10 +537,10 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | createdYmdt | Body | DateTime | 생성 일시 | @@ -556,11 +556,11 @@ GET /v3.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } @@ -637,8 +637,8 @@ GET /v3.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | @@ -661,11 +661,11 @@ GET /v3.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", @@ -735,7 +735,7 @@ POST /v3.0/db-instances "dbInstanceCandidateName": "dbInstanceCandidateName", "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbUserName": "dbUserName", "dbPassword": "dbPassword", @@ -751,10 +751,10 @@ POST /v3.0/db-instances "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -780,7 +780,7 @@ POST /v3.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -792,7 +792,7 @@ POST /v3.0/db-instances "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -858,18 +858,18 @@ POST /v3.0/db-instances/restore-from-obs "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbPort": 1, - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useHighAvailability": false, "imageId": "550e8400-e29b-41d4-a716-446655440000", "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -926,7 +926,7 @@ DELETE /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -938,7 +938,7 @@ DELETE /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -965,8 +965,8 @@ GET /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | @@ -974,8 +974,8 @@ GET /v3.0/db-instances/{dbInstanceId} | dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | -| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | | dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | | notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | | useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | @@ -996,17 +996,17 @@ GET /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", "progressStatus": "NONE", - "dbFlavorId": "dbFlavorId-example", - "parameterGroupId": "parameterGroupId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupIds": [], "notificationGroupIds": [], "useDeletionProtection": false, @@ -1060,7 +1060,7 @@ PUT /v3.0/db-instances/{dbInstanceId} "dbPort": 1, "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useDummy": false, "dbSecurityGroupIds": [], "executeBackup": false, @@ -1077,7 +1077,7 @@ PUT /v3.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1089,7 +1089,7 @@ PUT /v3.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1127,7 +1127,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1139,7 +1139,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1250,7 +1250,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1262,7 +1262,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/backup-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1308,7 +1308,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1320,7 +1320,7 @@ POST /v3.0/db-instances/{dbInstanceId}/backup-to-object-storage "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1368,7 +1368,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | | dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | | dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | | dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | @@ -1385,7 +1385,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { - "dbSchemaId": "dbSchemaId-example", + "dbSchemaId": "550e8400-e29b-41d4-a716-446655440000", "dbSchemaName": "dbSchemaName-example", "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" @@ -1428,7 +1428,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1440,7 +1440,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-schemas "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1468,7 +1468,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1480,7 +1480,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-schemas/{dbSchemaId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1508,7 +1508,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | | dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | | dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | | dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | @@ -1530,7 +1530,7 @@ GET /v3.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { - "dbUserId": "dbUserId-example", + "dbUserId": "550e8400-e29b-41d4-a716-446655440000", "dbUserName": "dbUserName-example", "host": "host-example", "authorityType": "CUSTOM", @@ -1588,7 +1588,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1600,7 +1600,7 @@ POST /v3.0/db-instances/{dbInstanceId}/db-users "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1628,7 +1628,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1640,7 +1640,7 @@ DELETE /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1685,7 +1685,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1697,7 +1697,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/db-users/{dbUserId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1788,7 +1788,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/high-availability | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1800,7 +1800,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/high-availability "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1827,7 +1827,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1839,7 +1839,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/pause "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1866,7 +1866,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1878,7 +1878,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/repair "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1905,7 +1905,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1917,7 +1917,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/resume "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -1944,7 +1944,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/split | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -1956,7 +1956,7 @@ POST /v3.0/db-instances/{dbInstanceId}/high-availability/split "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2054,7 +2054,7 @@ POST /v3.0/db-instances/{dbInstanceId}/log-files/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2066,7 +2066,7 @@ POST /v3.0/db-instances/{dbInstanceId}/log-files/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2095,7 +2095,7 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info |-----|-----|-----|-----| | availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | | subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetId | Body | UUID | 서브넷의 식별자 | | subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnet.subnetCidr | Body | String | 서브넷의 CIDR | | endPoints | Body | Array | 접속 정보 목록 | @@ -2113,9 +2113,9 @@ GET /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "availabilityZone-example", + "availabilityZone": "kr-pub-a", "subnet": { - "subnetId": "subnetId-example", + "subnetId": "550e8400-e29b-41d4-a716-446655440000", "subnetName": "subnetName-example", "subnetCidr": "subnetCidr-example" }, @@ -2163,7 +2163,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/network-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2175,7 +2175,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2202,7 +2202,7 @@ POST /v3.0/db-instances/{dbInstanceId}/promote | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2214,7 +2214,7 @@ POST /v3.0/db-instances/{dbInstanceId}/promote "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2275,10 +2275,10 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "useDeletionProtection": false, "network": { "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -2304,7 +2304,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2316,7 +2316,7 @@ POST /v3.0/db-instances/{dbInstanceId}/replicate "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2360,7 +2360,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restart | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2372,7 +2372,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restart "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2524,13 +2524,13 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "imageId": "550e8400-e29b-41d4-a716-446655440000", "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -2568,7 +2568,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2580,7 +2580,7 @@ POST /v3.0/db-instances/{dbInstanceId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2607,7 +2607,7 @@ POST /v3.0/db-instances/{dbInstanceId}/start | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2619,7 +2619,7 @@ POST /v3.0/db-instances/{dbInstanceId}/start "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2646,7 +2646,7 @@ POST /v3.0/db-instances/{dbInstanceId}/stop | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2658,7 +2658,7 @@ POST /v3.0/db-instances/{dbInstanceId}/stop "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2699,7 +2699,7 @@ GET /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 1, "storageStatus": "DELETED" } @@ -2739,7 +2739,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2751,7 +2751,7 @@ PUT /v3.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2788,10 +2788,10 @@ GET /v3.0/backups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 백업 목록 수 | | backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupId | Body | UUID | 백업의 식별자 | | backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backups.dbVersion | Body | Enum | DB 엔진 유형 | | backups.utilVersion | Body | String | 유틸리티 버전 | | backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -2812,11 +2812,11 @@ GET /v3.0/backups "totalCounts": 1, "backups": [ { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbVersion": "ENUM_VALUE", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupSize": 1, @@ -2850,7 +2850,7 @@ DELETE /v3.0/backups/{backupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2862,7 +2862,7 @@ DELETE /v3.0/backups/{backupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2908,7 +2908,7 @@ POST /v3.0/backups/{backupId}/export | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -2920,7 +2920,7 @@ POST /v3.0/backups/{backupId}/export "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -2987,10 +2987,10 @@ POST /v3.0/backups/{backupId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20 }, "backup": { @@ -3016,7 +3016,7 @@ POST /v3.0/backups/{backupId}/restore | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3028,7 +3028,7 @@ POST /v3.0/backups/{backupId}/restore "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3063,7 +3063,7 @@ GET /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | @@ -3082,7 +3082,7 @@ GET /v3.0/db-security-groups }, "dbSecurityGroups": [ { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", @@ -3150,7 +3150,7 @@ POST /v3.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 |

예시

@@ -3162,7 +3162,7 @@ POST /v3.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3210,12 +3210,12 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSecurityGroup | Body | Object | DB 보안 그룹 | -| dbSecurityGroup.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroup.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroup.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroup.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroup.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | | dbSecurityGroup.rules | Body | Array | DB 보안 그룹 규칙 목록 | -| dbSecurityGroup.rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| dbSecurityGroup.rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | | dbSecurityGroup.rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | | dbSecurityGroup.rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | | dbSecurityGroup.rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | @@ -3240,13 +3240,13 @@ GET /v3.0/db-security-groups/{dbSecurityGroupId} "isSuccessful": true }, "dbSecurityGroup": { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", "rules": [ { - "ruleId": "ruleId-example", + "ruleId": "550e8400-e29b-41d4-a716-446655440000", "description": "description-example", "direction": "INGRESS", "etherType": "IPV4", @@ -3323,7 +3323,7 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3335,7 +3335,7 @@ DELETE /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3388,7 +3388,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3400,7 +3400,7 @@ POST /v3.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3454,7 +3454,7 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -3466,7 +3466,7 @@ PUT /v3.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3492,7 +3492,7 @@ GET /v3.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | | parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | @@ -3512,10 +3512,10 @@ GET /v3.0/parameter-groups }, "parameterGroups": [ { - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -3550,7 +3550,7 @@ POST /v3.0/parameter-groups { "parameterGroupName": "parameterGroupName", "description": "description-example", - "dbVersion": "ENUM_VALUE" + "dbVersion": "MYSQL_V8036" } ``` @@ -3561,7 +3561,7 @@ POST /v3.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -3573,7 +3573,7 @@ POST /v3.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3620,13 +3620,13 @@ GET /v3.0/parameter-groups/{parameterGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | description | Body | String | 파라미터 그룹에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | | parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | | parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterId | Body | UUID | 파라미터의 식별자 | | parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | | parameters.parameterName | Body | String | 파라미터 이름 | | parameters.fileParameterName | Body | String | 파라미터 파일 이름 | @@ -3648,14 +3648,14 @@ GET /v3.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "parameters": [ { - "parameterId": "parameterId-example", + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "parameterFileGroup": "CLIENT", "parameterName": "parameterName-example", "fileParameterName": "fileParameterName-example", @@ -3740,7 +3740,7 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -3752,7 +3752,7 @@ POST /v3.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3836,7 +3836,7 @@ GET /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroups.createdYmdt | Body | DateTime | 생성 일시 | | userGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -3853,7 +3853,7 @@ GET /v3.0/user-groups }, "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -3899,7 +3899,7 @@ POST /v3.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 |

예시

@@ -3911,7 +3911,7 @@ POST /v3.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "userGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -3958,11 +3958,11 @@ GET /v3.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -3976,12 +3976,12 @@ GET /v3.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "userGroupTypeCode": "ENTIRE", "members": [ { - "memberId": "memberId-example" + "memberId": "550e8400-e29b-41d4-a716-446655440000" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4046,7 +4046,7 @@ GET /v3.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | | notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | @@ -4066,7 +4066,7 @@ GET /v3.0/notification-groups }, "notificationGroups": [ { - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, @@ -4121,7 +4121,7 @@ POST /v3.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 |

예시

@@ -4133,7 +4133,7 @@ POST /v3.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example" + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4180,16 +4180,16 @@ GET /v3.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notifyEmail | Body | Boolean | 이메일 알림 여부 | | notifySms | Body | Boolean | SMS 알림 여부 | | isEnabled | Body | Boolean | 활성화 여부 | | dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -4204,20 +4204,20 @@ GET /v3.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, "isEnabled": false, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example" } ], @@ -4466,7 +4466,7 @@ GET /v3.0/event-subscriptions |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | | eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | | eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | | eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | | eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | @@ -4492,7 +4492,7 @@ GET /v3.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "eventSubscriptionId-example", + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL", "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, @@ -4566,7 +4566,7 @@ POST /v3.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 |

예시

@@ -4578,7 +4578,7 @@ POST /v3.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000" } ``` diff --git a/ko/api-guide-v4.0-gov.md b/ko/api-guide-v4.0-gov.md index d1d630de..36bc66ee 100644 --- a/ko/api-guide-v4.0-gov.md +++ b/ko/api-guide-v4.0-gov.md @@ -111,7 +111,7 @@ GET /v4.0/project/members | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | members.memberName | Body | String | 프로젝트 멤버의 이름 | | members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | | members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | @@ -128,7 +128,7 @@ GET /v4.0/project/members }, "members": [ { - "memberId": "memberId-example", + "memberId": "550e8400-e29b-41d4-a716-446655440000", "memberName": "memberName-example", "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" @@ -213,7 +213,7 @@ GET /v4.0/db-flavors | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | | dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | | dbFlavors.ram | Body | Number | 메모리 용량(MB) | | dbFlavors.vcpus | Body | Number | CPU 코어 수 | @@ -230,7 +230,7 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "dbFlavorId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbFlavorName": "dbFlavorName-example", "ram": 1, "vcpus": 1 @@ -339,7 +339,7 @@ GET /v4.0/db-versions }, "dbVersions": [ { - "dbVersion": "dbVersion-example", + "dbVersion": "MYSQL_V8036", "dbVersionName": "dbVersionName-example", "restorableFromObs": false } @@ -438,7 +438,7 @@ GET /v4.0/jobs/{jobId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 | | jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | | resourceRelations | Body | Array | 연관 리소스 목록 | | resourceRelations.resourceType | Body | String | 연관 리소스 유형 | @@ -456,7 +456,7 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", + "jobId": "550e8400-e29b-41d4-a716-446655440000", "jobStatus": "DELETED", "resourceRelations": [ { @@ -497,7 +497,7 @@ GET /v4.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | | dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -514,7 +514,7 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -552,10 +552,10 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | createdYmdt | Body | DateTime | 생성 일시 | @@ -571,11 +571,11 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } @@ -658,8 +658,8 @@ GET /v4.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | @@ -682,11 +682,11 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", @@ -777,7 +777,7 @@ POST /v4.0/db-instances "dbInstanceName": "dbInstanceName", "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbUserName": "dbUserName", "dbPassword": "dbPassword", @@ -794,10 +794,10 @@ POST /v4.0/db-instances "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -924,11 +924,11 @@ POST /v4.0/db-instances/restore-from-obs "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbPort": 1, - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -937,7 +937,7 @@ POST /v4.0/db-instances/restore-from-obs "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -1076,8 +1076,8 @@ GET /v4.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | @@ -1085,8 +1085,8 @@ GET /v4.0/db-instances/{dbInstanceId} | dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | -| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | | dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | | notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | | useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | @@ -1108,17 +1108,17 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", "progressStatus": "NONE", - "dbFlavorId": "dbFlavorId-example", - "parameterGroupId": "parameterGroupId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupIds": [], "notificationGroupIds": [], "useDeletionProtection": false, @@ -1180,7 +1180,7 @@ PUT /v4.0/db-instances/{dbInstanceId} "dbPort": 1, "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useSlowQueryAnalysis": false, "useDummy": false, "dbSecurityGroupIds": [], @@ -1592,7 +1592,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | | dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | | dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | | dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | @@ -1609,7 +1609,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { - "dbSchemaId": "dbSchemaId-example", + "dbSchemaId": "550e8400-e29b-41d4-a716-446655440000", "dbSchemaName": "dbSchemaName-example", "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" @@ -1750,7 +1750,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | | dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | | dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | | dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | @@ -1772,7 +1772,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { - "dbUserId": "dbUserId-example", + "dbUserId": "550e8400-e29b-41d4-a716-446655440000", "dbUserName": "dbUserName-example", "host": "host-example", "authorityType": "CUSTOM", @@ -2521,8 +2521,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances |-----|-----|-----|-----| | totalCounts | Body | Number | 유지 관리 목록 갯수 | | maintenances | Body | Array | 유지 관리 목록 | -| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | -| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.maintenanceId | Body | UUID | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | UUID | DB 인스턴스 아이디 | | maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | | maintenances.description | Body | String | 유지 관리 설명 | | maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | @@ -2548,8 +2548,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { - "maintenanceId": "maintenanceId-example", - "dbInstanceId": "dbInstanceId-example", + "maintenanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "category": "USER", "description": "description-example", "type": "UPDATE_DB_INSTANCE", @@ -2734,7 +2734,7 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info |-----|-----|-----|-----| | availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | | subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetId | Body | UUID | 서브넷의 식별자 | | subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnet.subnetCidr | Body | String | 서브넷의 CIDR | | endPoints | Body | Array | 접속 정보 목록 | @@ -2752,9 +2752,9 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "availabilityZone-example", + "availabilityZone": "kr-pub-a", "subnet": { - "subnetId": "subnetId-example", + "subnetId": "550e8400-e29b-41d4-a716-446655440000", "subnetName": "subnetName-example", "subnetCidr": "subnetCidr-example" }, @@ -2989,10 +2989,10 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useSlowQueryAnalysis": true, "network": { "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3132,10 +3132,10 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info | latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | | restorableBackups | Body | Array | 복원 가능한 백업 목록 | | restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | | restorableBackups.backup.backupName | Body | String | 백업 이름 | | restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | | restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3163,12 +3163,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "restorableBackups": [ { "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "backupType": "AUTO", "backupSize": 1, "useBackupLock": false, @@ -3338,7 +3338,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3347,7 +3347,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -3540,7 +3540,7 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "storageType-example", + "storageType": "General SSD", "storageSize": 1, "storageStatus": "DELETED", "storageAutoscale": { @@ -3660,10 +3660,10 @@ GET /v4.0/backups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 백업 목록 수 | | backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupId | Body | UUID | 백업의 식별자 | | backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backups.dbVersion | Body | Enum | DB 엔진 유형 | | backups.utilVersion | Body | String | 유틸리티 버전 | | backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3684,11 +3684,11 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbVersion": "ENUM_VALUE", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupSize": 1, @@ -3835,11 +3835,11 @@ GET /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | String | 백업의 식별자 | +| backup.backupId | Body | UUID | 백업의 식별자 | | backup.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | | backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | backup.dbVersion | Body | Enum | DB 엔진 버전 | | backup.utilVersion | Body | String | 유틸리티 버전 | @@ -3864,13 +3864,13 @@ GET /v4.0/backups/{backupId} "isSuccessful": true }, "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "regionCode": "KR1", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupMethodType": "FULL", @@ -4037,10 +4037,10 @@ POST /v4.0/backups/{backupId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -4123,7 +4123,7 @@ GET /v4.0/db-security-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | | dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | @@ -4143,7 +4143,7 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", @@ -4217,7 +4217,7 @@ POST /v4.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 |

예시

@@ -4229,7 +4229,7 @@ POST /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4288,12 +4288,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | description | Body | String | DB 보안 그룹에 대한 추가 정보 | | progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | | rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | | rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | | rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | | rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | @@ -4317,13 +4317,13 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", "rules": [ { - "ruleId": "ruleId-example", + "ruleId": "550e8400-e29b-41d4-a716-446655440000", "description": "description-example", "direction": "INGRESS", "etherType": "IPV4", @@ -4411,7 +4411,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4423,7 +4423,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4482,7 +4482,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4494,7 +4494,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4554,7 +4554,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4566,7 +4566,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4599,7 +4599,7 @@ GET /v4.0/parameter-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 파라미터 그룹 수 | | parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | | parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | @@ -4621,10 +4621,10 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupType": "USER", "parameterGroupStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4666,7 +4666,7 @@ POST /v4.0/parameter-groups { "parameterGroupName": "parameterGroupName", "description": "description-example", - "dbVersion": "ENUM_VALUE" + "dbVersion": "MYSQL_V8036" } ``` @@ -4677,7 +4677,7 @@ POST /v4.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4689,7 +4689,7 @@ POST /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4748,13 +4748,13 @@ GET /v4.0/parameter-groups/{parameterGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | description | Body | String | 파라미터 그룹에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | | parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | | parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterId | Body | UUID | 파라미터의 식별자 | | parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | | parameters.parameterName | Body | String | 파라미터 이름 | | parameters.fileParameterName | Body | String | 파라미터 파일 이름 | @@ -4776,14 +4776,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "parameters": [ { - "parameterId": "parameterId-example", + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "parameterFileGroup": "CLIENT", "parameterName": "parameterName-example", "fileParameterName": "fileParameterName-example", @@ -4880,7 +4880,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4892,7 +4892,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4995,7 +4995,7 @@ GET /v4.0/user-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroups.createdYmdt | Body | DateTime | 생성 일시 | | userGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -5013,7 +5013,7 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -5065,7 +5065,7 @@ POST /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 |

예시

@@ -5077,7 +5077,7 @@ POST /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "userGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5136,11 +5136,11 @@ GET /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5154,12 +5154,12 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "userGroupTypeCode": "ENTIRE", "members": [ { - "memberId": "memberId-example" + "memberId": "550e8400-e29b-41d4-a716-446655440000" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -5236,7 +5236,7 @@ GET /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | | notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | @@ -5256,7 +5256,7 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, @@ -5317,7 +5317,7 @@ POST /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 |

예시

@@ -5329,7 +5329,7 @@ POST /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example" + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5388,16 +5388,16 @@ GET /v4.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notifyEmail | Body | Boolean | 이메일 알림 여부 | | notifySms | Body | Boolean | SMS 알림 여부 | | isEnabled | Body | Boolean | 활성화 여부 | | dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5412,20 +5412,20 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, "isEnabled": false, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example" } ], @@ -5710,7 +5710,7 @@ GET /v4.0/event-subscriptions |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | | eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | | eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | | eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | | eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | @@ -5736,7 +5736,7 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "eventSubscriptionId-example", + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL", "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, @@ -5816,7 +5816,7 @@ POST /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 |

예시

@@ -5828,7 +5828,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000" } ``` diff --git a/ko/api-guide-v4.0-ncgn.md b/ko/api-guide-v4.0-ncgn.md index 699564a4..b7295042 100644 --- a/ko/api-guide-v4.0-ncgn.md +++ b/ko/api-guide-v4.0-ncgn.md @@ -111,7 +111,7 @@ GET /v4.0/project/members | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | members.memberName | Body | String | 프로젝트 멤버의 이름 | | members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | | members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | @@ -128,7 +128,7 @@ GET /v4.0/project/members }, "members": [ { - "memberId": "memberId-example", + "memberId": "550e8400-e29b-41d4-a716-446655440000", "memberName": "memberName-example", "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" @@ -213,7 +213,7 @@ GET /v4.0/db-flavors | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | | dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | | dbFlavors.ram | Body | Number | 메모리 용량(MB) | | dbFlavors.vcpus | Body | Number | CPU 코어 수 | @@ -230,7 +230,7 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "dbFlavorId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbFlavorName": "dbFlavorName-example", "ram": 1, "vcpus": 1 @@ -339,7 +339,7 @@ GET /v4.0/db-versions }, "dbVersions": [ { - "dbVersion": "dbVersion-example", + "dbVersion": "MYSQL_V8036", "dbVersionName": "dbVersionName-example", "restorableFromObs": false } @@ -438,7 +438,7 @@ GET /v4.0/jobs/{jobId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 | | jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | | resourceRelations | Body | Array | 연관 리소스 목록 | | resourceRelations.resourceType | Body | String | 연관 리소스 유형 | @@ -456,7 +456,7 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", + "jobId": "550e8400-e29b-41d4-a716-446655440000", "jobStatus": "DELETED", "resourceRelations": [ { @@ -497,7 +497,7 @@ GET /v4.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | | dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -514,7 +514,7 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -552,10 +552,10 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | createdYmdt | Body | DateTime | 생성 일시 | @@ -571,11 +571,11 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } @@ -658,8 +658,8 @@ GET /v4.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | @@ -682,11 +682,11 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", @@ -777,7 +777,7 @@ POST /v4.0/db-instances "dbInstanceName": "dbInstanceName", "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbUserName": "dbUserName", "dbPassword": "dbPassword", @@ -794,10 +794,10 @@ POST /v4.0/db-instances "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -924,11 +924,11 @@ POST /v4.0/db-instances/restore-from-obs "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbPort": 1, - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -937,7 +937,7 @@ POST /v4.0/db-instances/restore-from-obs "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -1076,8 +1076,8 @@ GET /v4.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | @@ -1085,8 +1085,8 @@ GET /v4.0/db-instances/{dbInstanceId} | dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | -| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | | dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | | notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | | useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | @@ -1108,17 +1108,17 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", "progressStatus": "NONE", - "dbFlavorId": "dbFlavorId-example", - "parameterGroupId": "parameterGroupId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupIds": [], "notificationGroupIds": [], "useDeletionProtection": false, @@ -1180,7 +1180,7 @@ PUT /v4.0/db-instances/{dbInstanceId} "dbPort": 1, "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useSlowQueryAnalysis": false, "useDummy": false, "dbSecurityGroupIds": [], @@ -1592,7 +1592,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | | dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | | dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | | dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | @@ -1609,7 +1609,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { - "dbSchemaId": "dbSchemaId-example", + "dbSchemaId": "550e8400-e29b-41d4-a716-446655440000", "dbSchemaName": "dbSchemaName-example", "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" @@ -1750,7 +1750,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | | dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | | dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | | dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | @@ -1772,7 +1772,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { - "dbUserId": "dbUserId-example", + "dbUserId": "550e8400-e29b-41d4-a716-446655440000", "dbUserName": "dbUserName-example", "host": "host-example", "authorityType": "CUSTOM", @@ -2521,8 +2521,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances |-----|-----|-----|-----| | totalCounts | Body | Number | 유지 관리 목록 갯수 | | maintenances | Body | Array | 유지 관리 목록 | -| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | -| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.maintenanceId | Body | UUID | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | UUID | DB 인스턴스 아이디 | | maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | | maintenances.description | Body | String | 유지 관리 설명 | | maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | @@ -2548,8 +2548,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { - "maintenanceId": "maintenanceId-example", - "dbInstanceId": "dbInstanceId-example", + "maintenanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "category": "USER", "description": "description-example", "type": "UPDATE_DB_INSTANCE", @@ -2734,7 +2734,7 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info |-----|-----|-----|-----| | availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | | subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetId | Body | UUID | 서브넷의 식별자 | | subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnet.subnetCidr | Body | String | 서브넷의 CIDR | | endPoints | Body | Array | 접속 정보 목록 | @@ -2752,9 +2752,9 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "availabilityZone-example", + "availabilityZone": "kr-pub-a", "subnet": { - "subnetId": "subnetId-example", + "subnetId": "550e8400-e29b-41d4-a716-446655440000", "subnetName": "subnetName-example", "subnetCidr": "subnetCidr-example" }, @@ -2989,10 +2989,10 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useSlowQueryAnalysis": true, "network": { "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3132,10 +3132,10 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info | latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | | restorableBackups | Body | Array | 복원 가능한 백업 목록 | | restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | | restorableBackups.backup.backupName | Body | String | 백업 이름 | | restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | | restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3163,12 +3163,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "restorableBackups": [ { "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "backupType": "AUTO", "backupSize": 1, "useBackupLock": false, @@ -3338,7 +3338,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3347,7 +3347,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -3540,7 +3540,7 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "storageType-example", + "storageType": "General SSD", "storageSize": 1, "storageStatus": "DELETED", "storageAutoscale": { @@ -3660,10 +3660,10 @@ GET /v4.0/backups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 백업 목록 수 | | backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupId | Body | UUID | 백업의 식별자 | | backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backups.dbVersion | Body | Enum | DB 엔진 유형 | | backups.utilVersion | Body | String | 유틸리티 버전 | | backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3684,11 +3684,11 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbVersion": "ENUM_VALUE", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupSize": 1, @@ -3835,11 +3835,11 @@ GET /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | String | 백업의 식별자 | +| backup.backupId | Body | UUID | 백업의 식별자 | | backup.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | | backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | backup.dbVersion | Body | Enum | DB 엔진 버전 | | backup.utilVersion | Body | String | 유틸리티 버전 | @@ -3864,13 +3864,13 @@ GET /v4.0/backups/{backupId} "isSuccessful": true }, "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "regionCode": "KR1", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupMethodType": "FULL", @@ -4037,10 +4037,10 @@ POST /v4.0/backups/{backupId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -4123,7 +4123,7 @@ GET /v4.0/db-security-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | | dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | @@ -4143,7 +4143,7 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", @@ -4217,7 +4217,7 @@ POST /v4.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 |

예시

@@ -4229,7 +4229,7 @@ POST /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4288,12 +4288,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | description | Body | String | DB 보안 그룹에 대한 추가 정보 | | progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | | rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | | rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | | rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | | rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | @@ -4317,13 +4317,13 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", "rules": [ { - "ruleId": "ruleId-example", + "ruleId": "550e8400-e29b-41d4-a716-446655440000", "description": "description-example", "direction": "INGRESS", "etherType": "IPV4", @@ -4411,7 +4411,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4423,7 +4423,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4482,7 +4482,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4494,7 +4494,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4554,7 +4554,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4566,7 +4566,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4599,7 +4599,7 @@ GET /v4.0/parameter-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 파라미터 그룹 수 | | parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | | parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | @@ -4621,10 +4621,10 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupType": "USER", "parameterGroupStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4666,7 +4666,7 @@ POST /v4.0/parameter-groups { "parameterGroupName": "parameterGroupName", "description": "description-example", - "dbVersion": "ENUM_VALUE" + "dbVersion": "MYSQL_V8036" } ``` @@ -4677,7 +4677,7 @@ POST /v4.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4689,7 +4689,7 @@ POST /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4748,13 +4748,13 @@ GET /v4.0/parameter-groups/{parameterGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | description | Body | String | 파라미터 그룹에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | | parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | | parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterId | Body | UUID | 파라미터의 식별자 | | parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | | parameters.parameterName | Body | String | 파라미터 이름 | | parameters.fileParameterName | Body | String | 파라미터 파일 이름 | @@ -4776,14 +4776,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "parameters": [ { - "parameterId": "parameterId-example", + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "parameterFileGroup": "CLIENT", "parameterName": "parameterName-example", "fileParameterName": "fileParameterName-example", @@ -4880,7 +4880,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4892,7 +4892,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4995,7 +4995,7 @@ GET /v4.0/user-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroups.createdYmdt | Body | DateTime | 생성 일시 | | userGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -5013,7 +5013,7 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -5065,7 +5065,7 @@ POST /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 |

예시

@@ -5077,7 +5077,7 @@ POST /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "userGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5136,11 +5136,11 @@ GET /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5154,12 +5154,12 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "userGroupTypeCode": "ENTIRE", "members": [ { - "memberId": "memberId-example" + "memberId": "550e8400-e29b-41d4-a716-446655440000" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -5236,7 +5236,7 @@ GET /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | | notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | @@ -5256,7 +5256,7 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, @@ -5317,7 +5317,7 @@ POST /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 |

예시

@@ -5329,7 +5329,7 @@ POST /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example" + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5388,16 +5388,16 @@ GET /v4.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notifyEmail | Body | Boolean | 이메일 알림 여부 | | notifySms | Body | Boolean | SMS 알림 여부 | | isEnabled | Body | Boolean | 활성화 여부 | | dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5412,20 +5412,20 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, "isEnabled": false, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example" } ], @@ -5710,7 +5710,7 @@ GET /v4.0/event-subscriptions |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | | eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | | eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | | eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | | eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | @@ -5736,7 +5736,7 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "eventSubscriptionId-example", + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL", "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, @@ -5816,7 +5816,7 @@ POST /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 |

예시

@@ -5828,7 +5828,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000" } ``` diff --git a/ko/api-guide-v4.0-ngoic.md b/ko/api-guide-v4.0-ngoic.md index 548af449..1a9008f7 100644 --- a/ko/api-guide-v4.0-ngoic.md +++ b/ko/api-guide-v4.0-ngoic.md @@ -111,7 +111,7 @@ GET /v4.0/project/members | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | members.memberName | Body | String | 프로젝트 멤버의 이름 | | members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | | members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | @@ -128,7 +128,7 @@ GET /v4.0/project/members }, "members": [ { - "memberId": "memberId-example", + "memberId": "550e8400-e29b-41d4-a716-446655440000", "memberName": "memberName-example", "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" @@ -213,7 +213,7 @@ GET /v4.0/db-flavors | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | | dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | | dbFlavors.ram | Body | Number | 메모리 용량(MB) | | dbFlavors.vcpus | Body | Number | CPU 코어 수 | @@ -230,7 +230,7 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "dbFlavorId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbFlavorName": "dbFlavorName-example", "ram": 1, "vcpus": 1 @@ -339,7 +339,7 @@ GET /v4.0/db-versions }, "dbVersions": [ { - "dbVersion": "dbVersion-example", + "dbVersion": "MYSQL_V8036", "dbVersionName": "dbVersionName-example", "restorableFromObs": false } @@ -438,7 +438,7 @@ GET /v4.0/jobs/{jobId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 | | jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | | resourceRelations | Body | Array | 연관 리소스 목록 | | resourceRelations.resourceType | Body | String | 연관 리소스 유형 | @@ -456,7 +456,7 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", + "jobId": "550e8400-e29b-41d4-a716-446655440000", "jobStatus": "DELETED", "resourceRelations": [ { @@ -497,7 +497,7 @@ GET /v4.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | | dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -514,7 +514,7 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -552,10 +552,10 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | createdYmdt | Body | DateTime | 생성 일시 | @@ -571,11 +571,11 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } @@ -658,8 +658,8 @@ GET /v4.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | @@ -682,11 +682,11 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", @@ -777,7 +777,7 @@ POST /v4.0/db-instances "dbInstanceName": "dbInstanceName", "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbUserName": "dbUserName", "dbPassword": "dbPassword", @@ -794,10 +794,10 @@ POST /v4.0/db-instances "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -924,11 +924,11 @@ POST /v4.0/db-instances/restore-from-obs "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbPort": 1, - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -937,7 +937,7 @@ POST /v4.0/db-instances/restore-from-obs "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -1076,8 +1076,8 @@ GET /v4.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | @@ -1085,8 +1085,8 @@ GET /v4.0/db-instances/{dbInstanceId} | dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | -| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | | dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | | notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | | useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | @@ -1108,17 +1108,17 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", "progressStatus": "NONE", - "dbFlavorId": "dbFlavorId-example", - "parameterGroupId": "parameterGroupId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupIds": [], "notificationGroupIds": [], "useDeletionProtection": false, @@ -1180,7 +1180,7 @@ PUT /v4.0/db-instances/{dbInstanceId} "dbPort": 1, "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useSlowQueryAnalysis": false, "useDummy": false, "dbSecurityGroupIds": [], @@ -1592,7 +1592,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | | dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | | dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | | dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | @@ -1609,7 +1609,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { - "dbSchemaId": "dbSchemaId-example", + "dbSchemaId": "550e8400-e29b-41d4-a716-446655440000", "dbSchemaName": "dbSchemaName-example", "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" @@ -1750,7 +1750,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | | dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | | dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | | dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | @@ -1772,7 +1772,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { - "dbUserId": "dbUserId-example", + "dbUserId": "550e8400-e29b-41d4-a716-446655440000", "dbUserName": "dbUserName-example", "host": "host-example", "authorityType": "CUSTOM", @@ -2521,8 +2521,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances |-----|-----|-----|-----| | totalCounts | Body | Number | 유지 관리 목록 갯수 | | maintenances | Body | Array | 유지 관리 목록 | -| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | -| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.maintenanceId | Body | UUID | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | UUID | DB 인스턴스 아이디 | | maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | | maintenances.description | Body | String | 유지 관리 설명 | | maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | @@ -2548,8 +2548,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { - "maintenanceId": "maintenanceId-example", - "dbInstanceId": "dbInstanceId-example", + "maintenanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "category": "USER", "description": "description-example", "type": "UPDATE_DB_INSTANCE", @@ -2734,7 +2734,7 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info |-----|-----|-----|-----| | availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | | subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetId | Body | UUID | 서브넷의 식별자 | | subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnet.subnetCidr | Body | String | 서브넷의 CIDR | | endPoints | Body | Array | 접속 정보 목록 | @@ -2752,9 +2752,9 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "availabilityZone-example", + "availabilityZone": "kr-pub-a", "subnet": { - "subnetId": "subnetId-example", + "subnetId": "550e8400-e29b-41d4-a716-446655440000", "subnetName": "subnetName-example", "subnetCidr": "subnetCidr-example" }, @@ -2989,10 +2989,10 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useSlowQueryAnalysis": true, "network": { "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3132,10 +3132,10 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info | latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | | restorableBackups | Body | Array | 복원 가능한 백업 목록 | | restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | | restorableBackups.backup.backupName | Body | String | 백업 이름 | | restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | | restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3163,12 +3163,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "restorableBackups": [ { "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "backupType": "AUTO", "backupSize": 1, "useBackupLock": false, @@ -3338,7 +3338,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3347,7 +3347,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -3540,7 +3540,7 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "storageType-example", + "storageType": "General SSD", "storageSize": 1, "storageStatus": "DELETED", "storageAutoscale": { @@ -3660,10 +3660,10 @@ GET /v4.0/backups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 백업 목록 수 | | backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupId | Body | UUID | 백업의 식별자 | | backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backups.dbVersion | Body | Enum | DB 엔진 유형 | | backups.utilVersion | Body | String | 유틸리티 버전 | | backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3684,11 +3684,11 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbVersion": "ENUM_VALUE", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupSize": 1, @@ -3835,11 +3835,11 @@ GET /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | String | 백업의 식별자 | +| backup.backupId | Body | UUID | 백업의 식별자 | | backup.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | | backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | backup.dbVersion | Body | Enum | DB 엔진 버전 | | backup.utilVersion | Body | String | 유틸리티 버전 | @@ -3864,13 +3864,13 @@ GET /v4.0/backups/{backupId} "isSuccessful": true }, "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "regionCode": "KR4", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupMethodType": "FULL", @@ -4037,10 +4037,10 @@ POST /v4.0/backups/{backupId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -4123,7 +4123,7 @@ GET /v4.0/db-security-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | | dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | @@ -4143,7 +4143,7 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", @@ -4217,7 +4217,7 @@ POST /v4.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 |

예시

@@ -4229,7 +4229,7 @@ POST /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4288,12 +4288,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | description | Body | String | DB 보안 그룹에 대한 추가 정보 | | progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | | rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | | rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | | rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | | rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | @@ -4317,13 +4317,13 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", "rules": [ { - "ruleId": "ruleId-example", + "ruleId": "550e8400-e29b-41d4-a716-446655440000", "description": "description-example", "direction": "INGRESS", "etherType": "IPV4", @@ -4411,7 +4411,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4423,7 +4423,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4482,7 +4482,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4494,7 +4494,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4554,7 +4554,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4566,7 +4566,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4599,7 +4599,7 @@ GET /v4.0/parameter-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 파라미터 그룹 수 | | parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | | parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | @@ -4621,10 +4621,10 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupType": "USER", "parameterGroupStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4666,7 +4666,7 @@ POST /v4.0/parameter-groups { "parameterGroupName": "parameterGroupName", "description": "description-example", - "dbVersion": "ENUM_VALUE" + "dbVersion": "MYSQL_V8036" } ``` @@ -4677,7 +4677,7 @@ POST /v4.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4689,7 +4689,7 @@ POST /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4748,13 +4748,13 @@ GET /v4.0/parameter-groups/{parameterGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | description | Body | String | 파라미터 그룹에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | | parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | | parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterId | Body | UUID | 파라미터의 식별자 | | parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | | parameters.parameterName | Body | String | 파라미터 이름 | | parameters.fileParameterName | Body | String | 파라미터 파일 이름 | @@ -4776,14 +4776,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "parameters": [ { - "parameterId": "parameterId-example", + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "parameterFileGroup": "CLIENT", "parameterName": "parameterName-example", "fileParameterName": "fileParameterName-example", @@ -4880,7 +4880,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4892,7 +4892,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4995,7 +4995,7 @@ GET /v4.0/user-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroups.createdYmdt | Body | DateTime | 생성 일시 | | userGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -5013,7 +5013,7 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -5065,7 +5065,7 @@ POST /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 |

예시

@@ -5077,7 +5077,7 @@ POST /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "userGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5136,11 +5136,11 @@ GET /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5154,12 +5154,12 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "userGroupTypeCode": "ENTIRE", "members": [ { - "memberId": "memberId-example" + "memberId": "550e8400-e29b-41d4-a716-446655440000" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -5236,7 +5236,7 @@ GET /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | | notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | @@ -5256,7 +5256,7 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, @@ -5317,7 +5317,7 @@ POST /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 |

예시

@@ -5329,7 +5329,7 @@ POST /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example" + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5388,16 +5388,16 @@ GET /v4.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notifyEmail | Body | Boolean | 이메일 알림 여부 | | notifySms | Body | Boolean | SMS 알림 여부 | | isEnabled | Body | Boolean | 활성화 여부 | | dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5412,20 +5412,20 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, "isEnabled": false, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example" } ], @@ -5710,7 +5710,7 @@ GET /v4.0/event-subscriptions |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | | eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | | eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | | eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | | eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | @@ -5736,7 +5736,7 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "eventSubscriptionId-example", + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL", "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, @@ -5816,7 +5816,7 @@ POST /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 |

예시

@@ -5828,7 +5828,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000" } ``` diff --git a/ko/api-guide-v4.0-ngovc.md b/ko/api-guide-v4.0-ngovc.md index 93d36d3c..1d3bdfe3 100644 --- a/ko/api-guide-v4.0-ngovc.md +++ b/ko/api-guide-v4.0-ngovc.md @@ -111,7 +111,7 @@ GET /v4.0/project/members | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | members.memberName | Body | String | 프로젝트 멤버의 이름 | | members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | | members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | @@ -128,7 +128,7 @@ GET /v4.0/project/members }, "members": [ { - "memberId": "memberId-example", + "memberId": "550e8400-e29b-41d4-a716-446655440000", "memberName": "memberName-example", "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" @@ -213,7 +213,7 @@ GET /v4.0/db-flavors | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | | dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | | dbFlavors.ram | Body | Number | 메모리 용량(MB) | | dbFlavors.vcpus | Body | Number | CPU 코어 수 | @@ -230,7 +230,7 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "dbFlavorId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbFlavorName": "dbFlavorName-example", "ram": 1, "vcpus": 1 @@ -339,7 +339,7 @@ GET /v4.0/db-versions }, "dbVersions": [ { - "dbVersion": "dbVersion-example", + "dbVersion": "MYSQL_V8036", "dbVersionName": "dbVersionName-example", "restorableFromObs": false } @@ -438,7 +438,7 @@ GET /v4.0/jobs/{jobId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 | | jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | | resourceRelations | Body | Array | 연관 리소스 목록 | | resourceRelations.resourceType | Body | String | 연관 리소스 유형 | @@ -456,7 +456,7 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", + "jobId": "550e8400-e29b-41d4-a716-446655440000", "jobStatus": "DELETED", "resourceRelations": [ { @@ -497,7 +497,7 @@ GET /v4.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | | dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -514,7 +514,7 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -552,10 +552,10 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | createdYmdt | Body | DateTime | 생성 일시 | @@ -571,11 +571,11 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } @@ -658,8 +658,8 @@ GET /v4.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | @@ -682,11 +682,11 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", @@ -777,7 +777,7 @@ POST /v4.0/db-instances "dbInstanceName": "dbInstanceName", "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbUserName": "dbUserName", "dbPassword": "dbPassword", @@ -794,10 +794,10 @@ POST /v4.0/db-instances "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -924,11 +924,11 @@ POST /v4.0/db-instances/restore-from-obs "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbPort": 1, - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -937,7 +937,7 @@ POST /v4.0/db-instances/restore-from-obs "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -1076,8 +1076,8 @@ GET /v4.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | @@ -1085,8 +1085,8 @@ GET /v4.0/db-instances/{dbInstanceId} | dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | -| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | | dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | | notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | | useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | @@ -1108,17 +1108,17 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", "progressStatus": "NONE", - "dbFlavorId": "dbFlavorId-example", - "parameterGroupId": "parameterGroupId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupIds": [], "notificationGroupIds": [], "useDeletionProtection": false, @@ -1180,7 +1180,7 @@ PUT /v4.0/db-instances/{dbInstanceId} "dbPort": 1, "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useSlowQueryAnalysis": false, "useDummy": false, "dbSecurityGroupIds": [], @@ -1592,7 +1592,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | | dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | | dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | | dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | @@ -1609,7 +1609,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { - "dbSchemaId": "dbSchemaId-example", + "dbSchemaId": "550e8400-e29b-41d4-a716-446655440000", "dbSchemaName": "dbSchemaName-example", "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" @@ -1750,7 +1750,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | | dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | | dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | | dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | @@ -1772,7 +1772,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { - "dbUserId": "dbUserId-example", + "dbUserId": "550e8400-e29b-41d4-a716-446655440000", "dbUserName": "dbUserName-example", "host": "host-example", "authorityType": "CUSTOM", @@ -2521,8 +2521,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances |-----|-----|-----|-----| | totalCounts | Body | Number | 유지 관리 목록 갯수 | | maintenances | Body | Array | 유지 관리 목록 | -| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | -| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.maintenanceId | Body | UUID | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | UUID | DB 인스턴스 아이디 | | maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | | maintenances.description | Body | String | 유지 관리 설명 | | maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | @@ -2548,8 +2548,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { - "maintenanceId": "maintenanceId-example", - "dbInstanceId": "dbInstanceId-example", + "maintenanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "category": "USER", "description": "description-example", "type": "UPDATE_DB_INSTANCE", @@ -2734,7 +2734,7 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info |-----|-----|-----|-----| | availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | | subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetId | Body | UUID | 서브넷의 식별자 | | subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnet.subnetCidr | Body | String | 서브넷의 CIDR | | endPoints | Body | Array | 접속 정보 목록 | @@ -2752,9 +2752,9 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "availabilityZone-example", + "availabilityZone": "kr-pub-a", "subnet": { - "subnetId": "subnetId-example", + "subnetId": "550e8400-e29b-41d4-a716-446655440000", "subnetName": "subnetName-example", "subnetCidr": "subnetCidr-example" }, @@ -2989,10 +2989,10 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useSlowQueryAnalysis": true, "network": { "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3132,10 +3132,10 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info | latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | | restorableBackups | Body | Array | 복원 가능한 백업 목록 | | restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | | restorableBackups.backup.backupName | Body | String | 백업 이름 | | restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | | restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3163,12 +3163,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "restorableBackups": [ { "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "backupType": "AUTO", "backupSize": 1, "useBackupLock": false, @@ -3338,7 +3338,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3347,7 +3347,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -3540,7 +3540,7 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "storageType-example", + "storageType": "General SSD", "storageSize": 1, "storageStatus": "DELETED", "storageAutoscale": { @@ -3660,10 +3660,10 @@ GET /v4.0/backups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 백업 목록 수 | | backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupId | Body | UUID | 백업의 식별자 | | backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backups.dbVersion | Body | Enum | DB 엔진 유형 | | backups.utilVersion | Body | String | 유틸리티 버전 | | backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3684,11 +3684,11 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbVersion": "ENUM_VALUE", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupSize": 1, @@ -3835,11 +3835,11 @@ GET /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | String | 백업의 식별자 | +| backup.backupId | Body | UUID | 백업의 식별자 | | backup.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | | backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | backup.dbVersion | Body | Enum | DB 엔진 버전 | | backup.utilVersion | Body | String | 유틸리티 버전 | @@ -3864,13 +3864,13 @@ GET /v4.0/backups/{backupId} "isSuccessful": true }, "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "regionCode": "KR4", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupMethodType": "FULL", @@ -4037,10 +4037,10 @@ POST /v4.0/backups/{backupId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -4123,7 +4123,7 @@ GET /v4.0/db-security-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | | dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | @@ -4143,7 +4143,7 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", @@ -4217,7 +4217,7 @@ POST /v4.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 |

예시

@@ -4229,7 +4229,7 @@ POST /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4288,12 +4288,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | description | Body | String | DB 보안 그룹에 대한 추가 정보 | | progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | | rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | | rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | | rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | | rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | @@ -4317,13 +4317,13 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", "rules": [ { - "ruleId": "ruleId-example", + "ruleId": "550e8400-e29b-41d4-a716-446655440000", "description": "description-example", "direction": "INGRESS", "etherType": "IPV4", @@ -4411,7 +4411,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4423,7 +4423,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4482,7 +4482,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4494,7 +4494,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4554,7 +4554,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4566,7 +4566,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4599,7 +4599,7 @@ GET /v4.0/parameter-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 파라미터 그룹 수 | | parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | | parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | @@ -4621,10 +4621,10 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupType": "USER", "parameterGroupStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4666,7 +4666,7 @@ POST /v4.0/parameter-groups { "parameterGroupName": "parameterGroupName", "description": "description-example", - "dbVersion": "ENUM_VALUE" + "dbVersion": "MYSQL_V8036" } ``` @@ -4677,7 +4677,7 @@ POST /v4.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4689,7 +4689,7 @@ POST /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4748,13 +4748,13 @@ GET /v4.0/parameter-groups/{parameterGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | description | Body | String | 파라미터 그룹에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | | parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | | parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterId | Body | UUID | 파라미터의 식별자 | | parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | | parameters.parameterName | Body | String | 파라미터 이름 | | parameters.fileParameterName | Body | String | 파라미터 파일 이름 | @@ -4776,14 +4776,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "parameters": [ { - "parameterId": "parameterId-example", + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "parameterFileGroup": "CLIENT", "parameterName": "parameterName-example", "fileParameterName": "fileParameterName-example", @@ -4880,7 +4880,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4892,7 +4892,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4995,7 +4995,7 @@ GET /v4.0/user-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroups.createdYmdt | Body | DateTime | 생성 일시 | | userGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -5013,7 +5013,7 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -5065,7 +5065,7 @@ POST /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 |

예시

@@ -5077,7 +5077,7 @@ POST /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "userGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5136,11 +5136,11 @@ GET /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5154,12 +5154,12 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "userGroupTypeCode": "ENTIRE", "members": [ { - "memberId": "memberId-example" + "memberId": "550e8400-e29b-41d4-a716-446655440000" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -5236,7 +5236,7 @@ GET /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | | notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | @@ -5256,7 +5256,7 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, @@ -5317,7 +5317,7 @@ POST /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 |

예시

@@ -5329,7 +5329,7 @@ POST /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example" + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5388,16 +5388,16 @@ GET /v4.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notifyEmail | Body | Boolean | 이메일 알림 여부 | | notifySms | Body | Boolean | SMS 알림 여부 | | isEnabled | Body | Boolean | 활성화 여부 | | dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5412,20 +5412,20 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, "isEnabled": false, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example" } ], @@ -5710,7 +5710,7 @@ GET /v4.0/event-subscriptions |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | | eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | | eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | | eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | | eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | @@ -5736,7 +5736,7 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "eventSubscriptionId-example", + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL", "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, @@ -5816,7 +5816,7 @@ POST /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 |

예시

@@ -5828,7 +5828,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000" } ``` diff --git a/ko/api-guide-v4.0-ngsc.md b/ko/api-guide-v4.0-ngsc.md index 08cdf9d8..26c581fe 100644 --- a/ko/api-guide-v4.0-ngsc.md +++ b/ko/api-guide-v4.0-ngsc.md @@ -111,7 +111,7 @@ GET /v4.0/project/members | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | members.memberName | Body | String | 프로젝트 멤버의 이름 | | members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | | members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | @@ -128,7 +128,7 @@ GET /v4.0/project/members }, "members": [ { - "memberId": "memberId-example", + "memberId": "550e8400-e29b-41d4-a716-446655440000", "memberName": "memberName-example", "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" @@ -213,7 +213,7 @@ GET /v4.0/db-flavors | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | | dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | | dbFlavors.ram | Body | Number | 메모리 용량(MB) | | dbFlavors.vcpus | Body | Number | CPU 코어 수 | @@ -230,7 +230,7 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "dbFlavorId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbFlavorName": "dbFlavorName-example", "ram": 1, "vcpus": 1 @@ -339,7 +339,7 @@ GET /v4.0/db-versions }, "dbVersions": [ { - "dbVersion": "dbVersion-example", + "dbVersion": "MYSQL_V8036", "dbVersionName": "dbVersionName-example", "restorableFromObs": false } @@ -438,7 +438,7 @@ GET /v4.0/jobs/{jobId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 | | jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | | resourceRelations | Body | Array | 연관 리소스 목록 | | resourceRelations.resourceType | Body | String | 연관 리소스 유형 | @@ -456,7 +456,7 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", + "jobId": "550e8400-e29b-41d4-a716-446655440000", "jobStatus": "DELETED", "resourceRelations": [ { @@ -497,7 +497,7 @@ GET /v4.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | | dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -514,7 +514,7 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -552,10 +552,10 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | createdYmdt | Body | DateTime | 생성 일시 | @@ -571,11 +571,11 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } @@ -658,8 +658,8 @@ GET /v4.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | @@ -682,11 +682,11 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", @@ -777,7 +777,7 @@ POST /v4.0/db-instances "dbInstanceName": "dbInstanceName", "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbUserName": "dbUserName", "dbPassword": "dbPassword", @@ -794,10 +794,10 @@ POST /v4.0/db-instances "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -924,11 +924,11 @@ POST /v4.0/db-instances/restore-from-obs "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbPort": 1, - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -937,7 +937,7 @@ POST /v4.0/db-instances/restore-from-obs "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -1076,8 +1076,8 @@ GET /v4.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | @@ -1085,8 +1085,8 @@ GET /v4.0/db-instances/{dbInstanceId} | dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | -| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | | dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | | notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | | useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | @@ -1108,17 +1108,17 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", "progressStatus": "NONE", - "dbFlavorId": "dbFlavorId-example", - "parameterGroupId": "parameterGroupId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupIds": [], "notificationGroupIds": [], "useDeletionProtection": false, @@ -1180,7 +1180,7 @@ PUT /v4.0/db-instances/{dbInstanceId} "dbPort": 1, "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useSlowQueryAnalysis": false, "useDummy": false, "dbSecurityGroupIds": [], @@ -1592,7 +1592,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | | dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | | dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | | dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | @@ -1609,7 +1609,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { - "dbSchemaId": "dbSchemaId-example", + "dbSchemaId": "550e8400-e29b-41d4-a716-446655440000", "dbSchemaName": "dbSchemaName-example", "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" @@ -1750,7 +1750,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | | dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | | dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | | dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | @@ -1772,7 +1772,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { - "dbUserId": "dbUserId-example", + "dbUserId": "550e8400-e29b-41d4-a716-446655440000", "dbUserName": "dbUserName-example", "host": "host-example", "authorityType": "CUSTOM", @@ -2521,8 +2521,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances |-----|-----|-----|-----| | totalCounts | Body | Number | 유지 관리 목록 갯수 | | maintenances | Body | Array | 유지 관리 목록 | -| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | -| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.maintenanceId | Body | UUID | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | UUID | DB 인스턴스 아이디 | | maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | | maintenances.description | Body | String | 유지 관리 설명 | | maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | @@ -2548,8 +2548,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { - "maintenanceId": "maintenanceId-example", - "dbInstanceId": "dbInstanceId-example", + "maintenanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "category": "USER", "description": "description-example", "type": "UPDATE_DB_INSTANCE", @@ -2734,7 +2734,7 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info |-----|-----|-----|-----| | availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | | subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetId | Body | UUID | 서브넷의 식별자 | | subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnet.subnetCidr | Body | String | 서브넷의 CIDR | | endPoints | Body | Array | 접속 정보 목록 | @@ -2752,9 +2752,9 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "availabilityZone-example", + "availabilityZone": "kr-pub-a", "subnet": { - "subnetId": "subnetId-example", + "subnetId": "550e8400-e29b-41d4-a716-446655440000", "subnetName": "subnetName-example", "subnetCidr": "subnetCidr-example" }, @@ -2989,10 +2989,10 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useSlowQueryAnalysis": true, "network": { "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3132,10 +3132,10 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info | latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | | restorableBackups | Body | Array | 복원 가능한 백업 목록 | | restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | | restorableBackups.backup.backupName | Body | String | 백업 이름 | | restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | | restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3163,12 +3163,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "restorableBackups": [ { "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "backupType": "AUTO", "backupSize": 1, "useBackupLock": false, @@ -3338,7 +3338,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3347,7 +3347,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -3540,7 +3540,7 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "storageType-example", + "storageType": "General SSD", "storageSize": 1, "storageStatus": "DELETED", "storageAutoscale": { @@ -3660,10 +3660,10 @@ GET /v4.0/backups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 백업 목록 수 | | backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupId | Body | UUID | 백업의 식별자 | | backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backups.dbVersion | Body | Enum | DB 엔진 유형 | | backups.utilVersion | Body | String | 유틸리티 버전 | | backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3684,11 +3684,11 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbVersion": "ENUM_VALUE", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupSize": 1, @@ -3835,11 +3835,11 @@ GET /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | String | 백업의 식별자 | +| backup.backupId | Body | UUID | 백업의 식별자 | | backup.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | | backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | backup.dbVersion | Body | Enum | DB 엔진 버전 | | backup.utilVersion | Body | String | 유틸리티 버전 | @@ -3864,13 +3864,13 @@ GET /v4.0/backups/{backupId} "isSuccessful": true }, "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "regionCode": "KR4", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupMethodType": "FULL", @@ -4037,10 +4037,10 @@ POST /v4.0/backups/{backupId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -4123,7 +4123,7 @@ GET /v4.0/db-security-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | | dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | @@ -4143,7 +4143,7 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", @@ -4217,7 +4217,7 @@ POST /v4.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 |

예시

@@ -4229,7 +4229,7 @@ POST /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4288,12 +4288,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | description | Body | String | DB 보안 그룹에 대한 추가 정보 | | progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | | rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | | rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | | rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | | rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | @@ -4317,13 +4317,13 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", "rules": [ { - "ruleId": "ruleId-example", + "ruleId": "550e8400-e29b-41d4-a716-446655440000", "description": "description-example", "direction": "INGRESS", "etherType": "IPV4", @@ -4411,7 +4411,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4423,7 +4423,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4482,7 +4482,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4494,7 +4494,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4554,7 +4554,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4566,7 +4566,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4599,7 +4599,7 @@ GET /v4.0/parameter-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 파라미터 그룹 수 | | parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | | parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | @@ -4621,10 +4621,10 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupType": "USER", "parameterGroupStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4666,7 +4666,7 @@ POST /v4.0/parameter-groups { "parameterGroupName": "parameterGroupName", "description": "description-example", - "dbVersion": "ENUM_VALUE" + "dbVersion": "MYSQL_V8036" } ``` @@ -4677,7 +4677,7 @@ POST /v4.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4689,7 +4689,7 @@ POST /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4748,13 +4748,13 @@ GET /v4.0/parameter-groups/{parameterGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | description | Body | String | 파라미터 그룹에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | | parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | | parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterId | Body | UUID | 파라미터의 식별자 | | parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | | parameters.parameterName | Body | String | 파라미터 이름 | | parameters.fileParameterName | Body | String | 파라미터 파일 이름 | @@ -4776,14 +4776,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "parameters": [ { - "parameterId": "parameterId-example", + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "parameterFileGroup": "CLIENT", "parameterName": "parameterName-example", "fileParameterName": "fileParameterName-example", @@ -4880,7 +4880,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4892,7 +4892,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4995,7 +4995,7 @@ GET /v4.0/user-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroups.createdYmdt | Body | DateTime | 생성 일시 | | userGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -5013,7 +5013,7 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -5065,7 +5065,7 @@ POST /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 |

예시

@@ -5077,7 +5077,7 @@ POST /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "userGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5136,11 +5136,11 @@ GET /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5154,12 +5154,12 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "userGroupTypeCode": "ENTIRE", "members": [ { - "memberId": "memberId-example" + "memberId": "550e8400-e29b-41d4-a716-446655440000" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -5236,7 +5236,7 @@ GET /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | | notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | @@ -5256,7 +5256,7 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, @@ -5317,7 +5317,7 @@ POST /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 |

예시

@@ -5329,7 +5329,7 @@ POST /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example" + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5388,16 +5388,16 @@ GET /v4.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notifyEmail | Body | Boolean | 이메일 알림 여부 | | notifySms | Body | Boolean | SMS 알림 여부 | | isEnabled | Body | Boolean | 활성화 여부 | | dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5412,20 +5412,20 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, "isEnabled": false, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example" } ], @@ -5710,7 +5710,7 @@ GET /v4.0/event-subscriptions |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | | eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | | eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | | eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | | eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | @@ -5736,7 +5736,7 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "eventSubscriptionId-example", + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL", "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, @@ -5816,7 +5816,7 @@ POST /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 |

예시

@@ -5828,7 +5828,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000" } ``` diff --git a/ko/api-guide-v4.0-ninc.md b/ko/api-guide-v4.0-ninc.md index cc788410..bfd40030 100644 --- a/ko/api-guide-v4.0-ninc.md +++ b/ko/api-guide-v4.0-ninc.md @@ -111,7 +111,7 @@ GET /v4.0/project/members | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | members.memberName | Body | String | 프로젝트 멤버의 이름 | | members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | | members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | @@ -128,7 +128,7 @@ GET /v4.0/project/members }, "members": [ { - "memberId": "memberId-example", + "memberId": "550e8400-e29b-41d4-a716-446655440000", "memberName": "memberName-example", "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" @@ -213,7 +213,7 @@ GET /v4.0/db-flavors | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | | dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | | dbFlavors.ram | Body | Number | 메모리 용량(MB) | | dbFlavors.vcpus | Body | Number | CPU 코어 수 | @@ -230,7 +230,7 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "dbFlavorId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbFlavorName": "dbFlavorName-example", "ram": 1, "vcpus": 1 @@ -339,7 +339,7 @@ GET /v4.0/db-versions }, "dbVersions": [ { - "dbVersion": "dbVersion-example", + "dbVersion": "MYSQL_V8036", "dbVersionName": "dbVersionName-example", "restorableFromObs": false } @@ -438,7 +438,7 @@ GET /v4.0/jobs/{jobId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 | | jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | | resourceRelations | Body | Array | 연관 리소스 목록 | | resourceRelations.resourceType | Body | String | 연관 리소스 유형 | @@ -456,7 +456,7 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", + "jobId": "550e8400-e29b-41d4-a716-446655440000", "jobStatus": "DELETED", "resourceRelations": [ { @@ -497,7 +497,7 @@ GET /v4.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | | dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -514,7 +514,7 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -552,10 +552,10 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | createdYmdt | Body | DateTime | 생성 일시 | @@ -571,11 +571,11 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } @@ -658,8 +658,8 @@ GET /v4.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | @@ -682,11 +682,11 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", @@ -777,7 +777,7 @@ POST /v4.0/db-instances "dbInstanceName": "dbInstanceName", "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbUserName": "dbUserName", "dbPassword": "dbPassword", @@ -794,10 +794,10 @@ POST /v4.0/db-instances "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -924,11 +924,11 @@ POST /v4.0/db-instances/restore-from-obs "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbPort": 1, - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -937,7 +937,7 @@ POST /v4.0/db-instances/restore-from-obs "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -1076,8 +1076,8 @@ GET /v4.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | @@ -1085,8 +1085,8 @@ GET /v4.0/db-instances/{dbInstanceId} | dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | -| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | | dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | | notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | | useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | @@ -1108,17 +1108,17 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", "progressStatus": "NONE", - "dbFlavorId": "dbFlavorId-example", - "parameterGroupId": "parameterGroupId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupIds": [], "notificationGroupIds": [], "useDeletionProtection": false, @@ -1180,7 +1180,7 @@ PUT /v4.0/db-instances/{dbInstanceId} "dbPort": 1, "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useSlowQueryAnalysis": false, "useDummy": false, "dbSecurityGroupIds": [], @@ -1592,7 +1592,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | | dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | | dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | | dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | @@ -1609,7 +1609,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { - "dbSchemaId": "dbSchemaId-example", + "dbSchemaId": "550e8400-e29b-41d4-a716-446655440000", "dbSchemaName": "dbSchemaName-example", "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" @@ -1750,7 +1750,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | | dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | | dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | | dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | @@ -1772,7 +1772,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { - "dbUserId": "dbUserId-example", + "dbUserId": "550e8400-e29b-41d4-a716-446655440000", "dbUserName": "dbUserName-example", "host": "host-example", "authorityType": "CUSTOM", @@ -2521,8 +2521,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances |-----|-----|-----|-----| | totalCounts | Body | Number | 유지 관리 목록 갯수 | | maintenances | Body | Array | 유지 관리 목록 | -| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | -| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.maintenanceId | Body | UUID | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | UUID | DB 인스턴스 아이디 | | maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | | maintenances.description | Body | String | 유지 관리 설명 | | maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | @@ -2548,8 +2548,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { - "maintenanceId": "maintenanceId-example", - "dbInstanceId": "dbInstanceId-example", + "maintenanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "category": "USER", "description": "description-example", "type": "UPDATE_DB_INSTANCE", @@ -2734,7 +2734,7 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info |-----|-----|-----|-----| | availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | | subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetId | Body | UUID | 서브넷의 식별자 | | subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnet.subnetCidr | Body | String | 서브넷의 CIDR | | endPoints | Body | Array | 접속 정보 목록 | @@ -2752,9 +2752,9 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "availabilityZone-example", + "availabilityZone": "kr-pub-a", "subnet": { - "subnetId": "subnetId-example", + "subnetId": "550e8400-e29b-41d4-a716-446655440000", "subnetName": "subnetName-example", "subnetCidr": "subnetCidr-example" }, @@ -2989,10 +2989,10 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useSlowQueryAnalysis": true, "network": { "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3132,10 +3132,10 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info | latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | | restorableBackups | Body | Array | 복원 가능한 백업 목록 | | restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | | restorableBackups.backup.backupName | Body | String | 백업 이름 | | restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | | restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3163,12 +3163,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "restorableBackups": [ { "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "backupType": "AUTO", "backupSize": 1, "useBackupLock": false, @@ -3338,7 +3338,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3347,7 +3347,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -3540,7 +3540,7 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "storageType-example", + "storageType": "General SSD", "storageSize": 1, "storageStatus": "DELETED", "storageAutoscale": { @@ -3660,10 +3660,10 @@ GET /v4.0/backups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 백업 목록 수 | | backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupId | Body | UUID | 백업의 식별자 | | backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backups.dbVersion | Body | Enum | DB 엔진 유형 | | backups.utilVersion | Body | String | 유틸리티 버전 | | backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3684,11 +3684,11 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbVersion": "ENUM_VALUE", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupSize": 1, @@ -3835,11 +3835,11 @@ GET /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | String | 백업의 식별자 | +| backup.backupId | Body | UUID | 백업의 식별자 | | backup.regionCode | Body | Enum | 리전 코드
- KR4: `한국(대구)` | | backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | backup.dbVersion | Body | Enum | DB 엔진 버전 | | backup.utilVersion | Body | String | 유틸리티 버전 | @@ -3864,13 +3864,13 @@ GET /v4.0/backups/{backupId} "isSuccessful": true }, "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "regionCode": "KR4", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupMethodType": "FULL", @@ -4037,10 +4037,10 @@ POST /v4.0/backups/{backupId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -4123,7 +4123,7 @@ GET /v4.0/db-security-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | | dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | @@ -4143,7 +4143,7 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", @@ -4217,7 +4217,7 @@ POST /v4.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 |

예시

@@ -4229,7 +4229,7 @@ POST /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4288,12 +4288,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | description | Body | String | DB 보안 그룹에 대한 추가 정보 | | progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | | rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | | rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | | rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | | rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | @@ -4317,13 +4317,13 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", "rules": [ { - "ruleId": "ruleId-example", + "ruleId": "550e8400-e29b-41d4-a716-446655440000", "description": "description-example", "direction": "INGRESS", "etherType": "IPV4", @@ -4411,7 +4411,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4423,7 +4423,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4482,7 +4482,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4494,7 +4494,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4554,7 +4554,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4566,7 +4566,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4599,7 +4599,7 @@ GET /v4.0/parameter-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 파라미터 그룹 수 | | parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | | parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | @@ -4621,10 +4621,10 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupType": "USER", "parameterGroupStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4666,7 +4666,7 @@ POST /v4.0/parameter-groups { "parameterGroupName": "parameterGroupName", "description": "description-example", - "dbVersion": "ENUM_VALUE" + "dbVersion": "MYSQL_V8036" } ``` @@ -4677,7 +4677,7 @@ POST /v4.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4689,7 +4689,7 @@ POST /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4748,13 +4748,13 @@ GET /v4.0/parameter-groups/{parameterGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | description | Body | String | 파라미터 그룹에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | | parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | | parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterId | Body | UUID | 파라미터의 식별자 | | parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | | parameters.parameterName | Body | String | 파라미터 이름 | | parameters.fileParameterName | Body | String | 파라미터 파일 이름 | @@ -4776,14 +4776,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "parameters": [ { - "parameterId": "parameterId-example", + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "parameterFileGroup": "CLIENT", "parameterName": "parameterName-example", "fileParameterName": "fileParameterName-example", @@ -4880,7 +4880,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4892,7 +4892,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4995,7 +4995,7 @@ GET /v4.0/user-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroups.createdYmdt | Body | DateTime | 생성 일시 | | userGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -5013,7 +5013,7 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -5065,7 +5065,7 @@ POST /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 |

예시

@@ -5077,7 +5077,7 @@ POST /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "userGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5136,11 +5136,11 @@ GET /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5154,12 +5154,12 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "userGroupTypeCode": "ENTIRE", "members": [ { - "memberId": "memberId-example" + "memberId": "550e8400-e29b-41d4-a716-446655440000" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -5236,7 +5236,7 @@ GET /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | | notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | @@ -5256,7 +5256,7 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, @@ -5317,7 +5317,7 @@ POST /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 |

예시

@@ -5329,7 +5329,7 @@ POST /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example" + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5388,16 +5388,16 @@ GET /v4.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notifyEmail | Body | Boolean | 이메일 알림 여부 | | notifySms | Body | Boolean | SMS 알림 여부 | | isEnabled | Body | Boolean | 활성화 여부 | | dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5412,20 +5412,20 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, "isEnabled": false, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example" } ], @@ -5710,7 +5710,7 @@ GET /v4.0/event-subscriptions |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | | eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | | eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | | eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | | eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | @@ -5736,7 +5736,7 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "eventSubscriptionId-example", + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL", "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, @@ -5816,7 +5816,7 @@ POST /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 |

예시

@@ -5828,7 +5828,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000" } ``` diff --git a/ko/api-guide-v4.0.md b/ko/api-guide-v4.0.md index 0af00038..ae6958c7 100644 --- a/ko/api-guide-v4.0.md +++ b/ko/api-guide-v4.0.md @@ -113,7 +113,7 @@ GET /v4.0/project/members | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | members.memberName | Body | String | 프로젝트 멤버의 이름 | | members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | | members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | @@ -130,7 +130,7 @@ GET /v4.0/project/members }, "members": [ { - "memberId": "memberId-example", + "memberId": "550e8400-e29b-41d4-a716-446655440000", "memberName": "memberName-example", "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" @@ -215,7 +215,7 @@ GET /v4.0/db-flavors | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | | dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | | dbFlavors.ram | Body | Number | 메모리 용량(MB) | | dbFlavors.vcpus | Body | Number | CPU 코어 수 | @@ -232,7 +232,7 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "dbFlavorId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbFlavorName": "dbFlavorName-example", "ram": 1, "vcpus": 1 @@ -341,7 +341,7 @@ GET /v4.0/db-versions }, "dbVersions": [ { - "dbVersion": "dbVersion-example", + "dbVersion": "MYSQL_V8036", "dbVersionName": "dbVersionName-example", "restorableFromObs": false } @@ -440,7 +440,7 @@ GET /v4.0/jobs/{jobId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 | | jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | | resourceRelations | Body | Array | 연관 리소스 목록 | | resourceRelations.resourceType | Body | String | 연관 리소스 유형 | @@ -458,7 +458,7 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", + "jobId": "550e8400-e29b-41d4-a716-446655440000", "jobStatus": "DELETED", "resourceRelations": [ { @@ -499,7 +499,7 @@ GET /v4.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | | dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -516,7 +516,7 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -554,10 +554,10 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | createdYmdt | Body | DateTime | 생성 일시 | @@ -573,11 +573,11 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } @@ -660,8 +660,8 @@ GET /v4.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | @@ -684,11 +684,11 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", @@ -779,7 +779,7 @@ POST /v4.0/db-instances "dbInstanceName": "dbInstanceName", "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbUserName": "dbUserName", "dbPassword": "dbPassword", @@ -796,10 +796,10 @@ POST /v4.0/db-instances "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -926,11 +926,11 @@ POST /v4.0/db-instances/restore-from-obs "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbPort": 1, - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -939,7 +939,7 @@ POST /v4.0/db-instances/restore-from-obs "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -1078,8 +1078,8 @@ GET /v4.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | @@ -1087,8 +1087,8 @@ GET /v4.0/db-instances/{dbInstanceId} | dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | -| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | | dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | | notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | | useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | @@ -1110,17 +1110,17 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", "progressStatus": "NONE", - "dbFlavorId": "dbFlavorId-example", - "parameterGroupId": "parameterGroupId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupIds": [], "notificationGroupIds": [], "useDeletionProtection": false, @@ -1182,7 +1182,7 @@ PUT /v4.0/db-instances/{dbInstanceId} "dbPort": 1, "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useSlowQueryAnalysis": false, "useDummy": false, "dbSecurityGroupIds": [], @@ -1594,7 +1594,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | | dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | | dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | | dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | @@ -1611,7 +1611,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { - "dbSchemaId": "dbSchemaId-example", + "dbSchemaId": "550e8400-e29b-41d4-a716-446655440000", "dbSchemaName": "dbSchemaName-example", "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" @@ -1752,7 +1752,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | | dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | | dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | | dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | @@ -1774,7 +1774,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { - "dbUserId": "dbUserId-example", + "dbUserId": "550e8400-e29b-41d4-a716-446655440000", "dbUserName": "dbUserName-example", "host": "host-example", "authorityType": "CUSTOM", @@ -2523,8 +2523,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances |-----|-----|-----|-----| | totalCounts | Body | Number | 유지 관리 목록 갯수 | | maintenances | Body | Array | 유지 관리 목록 | -| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | -| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.maintenanceId | Body | UUID | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | UUID | DB 인스턴스 아이디 | | maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | | maintenances.description | Body | String | 유지 관리 설명 | | maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | @@ -2550,8 +2550,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { - "maintenanceId": "maintenanceId-example", - "dbInstanceId": "dbInstanceId-example", + "maintenanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "category": "USER", "description": "description-example", "type": "UPDATE_DB_INSTANCE", @@ -2736,7 +2736,7 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info |-----|-----|-----|-----| | availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | | subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetId | Body | UUID | 서브넷의 식별자 | | subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnet.subnetCidr | Body | String | 서브넷의 CIDR | | endPoints | Body | Array | 접속 정보 목록 | @@ -2754,9 +2754,9 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "availabilityZone-example", + "availabilityZone": "kr-pub-a", "subnet": { - "subnetId": "subnetId-example", + "subnetId": "550e8400-e29b-41d4-a716-446655440000", "subnetName": "subnetName-example", "subnetCidr": "subnetCidr-example" }, @@ -2991,10 +2991,10 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useSlowQueryAnalysis": true, "network": { "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3134,10 +3134,10 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info | latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | | restorableBackups | Body | Array | 복원 가능한 백업 목록 | | restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | | restorableBackups.backup.backupName | Body | String | 백업 이름 | | restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | | restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3165,12 +3165,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "restorableBackups": [ { "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "backupType": "AUTO", "backupSize": 1, "useBackupLock": false, @@ -3340,7 +3340,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3349,7 +3349,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -3542,7 +3542,7 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "storageType-example", + "storageType": "General SSD", "storageSize": 1, "storageStatus": "DELETED", "storageAutoscale": { @@ -3662,10 +3662,10 @@ GET /v4.0/backups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 백업 목록 수 | | backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupId | Body | UUID | 백업의 식별자 | | backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backups.dbVersion | Body | Enum | DB 엔진 유형 | | backups.utilVersion | Body | String | 유틸리티 버전 | | backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3686,11 +3686,11 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbVersion": "ENUM_VALUE", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupSize": 1, @@ -3837,11 +3837,11 @@ GET /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | String | 백업의 식별자 | +| backup.backupId | Body | UUID | 백업의 식별자 | | backup.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)`
- KR2: `한국(평촌)`
- JP1: `일본(도쿄)` | | backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | backup.dbVersion | Body | Enum | DB 엔진 버전 | | backup.utilVersion | Body | String | 유틸리티 버전 | @@ -3866,13 +3866,13 @@ GET /v4.0/backups/{backupId} "isSuccessful": true }, "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "regionCode": "KR1", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupMethodType": "FULL", @@ -4039,10 +4039,10 @@ POST /v4.0/backups/{backupId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -4125,7 +4125,7 @@ GET /v4.0/db-security-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | | dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | @@ -4145,7 +4145,7 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", @@ -4219,7 +4219,7 @@ POST /v4.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 |

예시

@@ -4231,7 +4231,7 @@ POST /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4290,12 +4290,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | description | Body | String | DB 보안 그룹에 대한 추가 정보 | | progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | | rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | | rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | | rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | | rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | @@ -4319,13 +4319,13 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", "rules": [ { - "ruleId": "ruleId-example", + "ruleId": "550e8400-e29b-41d4-a716-446655440000", "description": "description-example", "direction": "INGRESS", "etherType": "IPV4", @@ -4413,7 +4413,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4425,7 +4425,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4484,7 +4484,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4496,7 +4496,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4556,7 +4556,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4568,7 +4568,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4601,7 +4601,7 @@ GET /v4.0/parameter-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 파라미터 그룹 수 | | parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | | parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | @@ -4623,10 +4623,10 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupType": "USER", "parameterGroupStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4668,7 +4668,7 @@ POST /v4.0/parameter-groups { "parameterGroupName": "parameterGroupName", "description": "description-example", - "dbVersion": "ENUM_VALUE" + "dbVersion": "MYSQL_V8036" } ``` @@ -4679,7 +4679,7 @@ POST /v4.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4691,7 +4691,7 @@ POST /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4750,13 +4750,13 @@ GET /v4.0/parameter-groups/{parameterGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | description | Body | String | 파라미터 그룹에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | | parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | | parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterId | Body | UUID | 파라미터의 식별자 | | parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | | parameters.parameterName | Body | String | 파라미터 이름 | | parameters.fileParameterName | Body | String | 파라미터 파일 이름 | @@ -4778,14 +4778,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "parameters": [ { - "parameterId": "parameterId-example", + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "parameterFileGroup": "CLIENT", "parameterName": "parameterName-example", "fileParameterName": "fileParameterName-example", @@ -4882,7 +4882,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4894,7 +4894,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4997,7 +4997,7 @@ GET /v4.0/user-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroups.createdYmdt | Body | DateTime | 생성 일시 | | userGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -5015,7 +5015,7 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -5067,7 +5067,7 @@ POST /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 |

예시

@@ -5079,7 +5079,7 @@ POST /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "userGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5138,11 +5138,11 @@ GET /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5156,12 +5156,12 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "userGroupTypeCode": "ENTIRE", "members": [ { - "memberId": "memberId-example" + "memberId": "550e8400-e29b-41d4-a716-446655440000" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -5238,7 +5238,7 @@ GET /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | | notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | @@ -5258,7 +5258,7 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, @@ -5319,7 +5319,7 @@ POST /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 |

예시

@@ -5331,7 +5331,7 @@ POST /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example" + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5390,16 +5390,16 @@ GET /v4.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notifyEmail | Body | Boolean | 이메일 알림 여부 | | notifySms | Body | Boolean | SMS 알림 여부 | | isEnabled | Body | Boolean | 활성화 여부 | | dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5414,20 +5414,20 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, "isEnabled": false, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example" } ], @@ -5712,7 +5712,7 @@ GET /v4.0/event-subscriptions |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | | eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | | eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | | eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | | eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | @@ -5738,7 +5738,7 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "eventSubscriptionId-example", + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL", "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, @@ -5818,7 +5818,7 @@ POST /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 |

예시

@@ -5830,7 +5830,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000" } ``` diff --git a/mariadb/ko/api-guide-v4.0-gov.md b/mariadb/ko/api-guide-v4.0-gov.md index 4fe4c21d..2e288b6e 100644 --- a/mariadb/ko/api-guide-v4.0-gov.md +++ b/mariadb/ko/api-guide-v4.0-gov.md @@ -99,7 +99,7 @@ GET /v4.0/project/members | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | members.memberName | Body | String | 프로젝트 멤버의 이름 | | members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | | members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | @@ -116,7 +116,7 @@ GET /v4.0/project/members }, "members": [ { - "memberId": "memberId-example", + "memberId": "550e8400-e29b-41d4-a716-446655440000", "memberName": "memberName-example", "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" @@ -201,7 +201,7 @@ GET /v4.0/db-flavors | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | | dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | | dbFlavors.ram | Body | Number | 메모리 용량(MB) | | dbFlavors.vcpus | Body | Number | CPU 코어 수 | @@ -218,7 +218,7 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "dbFlavorId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbFlavorName": "dbFlavorName-example", "ram": 1, "vcpus": 1 @@ -327,7 +327,7 @@ GET /v4.0/db-versions }, "dbVersions": [ { - "dbVersion": "dbVersion-example", + "dbVersion": "MYSQL_V8036", "dbVersionName": "dbVersionName-example", "restorableFromObs": false } @@ -426,7 +426,7 @@ GET /v4.0/jobs/{jobId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 | | jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | | resourceRelations | Body | Array | 연관 리소스 목록 | | resourceRelations.resourceType | Body | String | 연관 리소스 유형 | @@ -444,7 +444,7 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", + "jobId": "550e8400-e29b-41d4-a716-446655440000", "jobStatus": "DELETED", "resourceRelations": [ { @@ -485,7 +485,7 @@ GET /v4.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | | dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -502,7 +502,7 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -540,10 +540,10 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | createdYmdt | Body | DateTime | 생성 일시 | @@ -559,11 +559,11 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } @@ -646,8 +646,8 @@ GET /v4.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | @@ -670,11 +670,11 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", @@ -765,7 +765,7 @@ POST /v4.0/db-instances "dbInstanceName": "dbInstanceName", "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbUserName": "dbUserName", "dbPassword": "dbPassword", @@ -782,10 +782,10 @@ POST /v4.0/db-instances "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -912,11 +912,11 @@ POST /v4.0/db-instances/restore-from-obs "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbPort": 1, - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -925,7 +925,7 @@ POST /v4.0/db-instances/restore-from-obs "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -1064,8 +1064,8 @@ GET /v4.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | @@ -1073,8 +1073,8 @@ GET /v4.0/db-instances/{dbInstanceId} | dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | -| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | | dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | | notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | | useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | @@ -1096,17 +1096,17 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", "progressStatus": "NONE", - "dbFlavorId": "dbFlavorId-example", - "parameterGroupId": "parameterGroupId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupIds": [], "notificationGroupIds": [], "useDeletionProtection": false, @@ -1168,7 +1168,7 @@ PUT /v4.0/db-instances/{dbInstanceId} "dbPort": 1, "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useSlowQueryAnalysis": false, "useDummy": false, "dbSecurityGroupIds": [], @@ -1580,7 +1580,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | | dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | | dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | | dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | @@ -1597,7 +1597,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { - "dbSchemaId": "dbSchemaId-example", + "dbSchemaId": "550e8400-e29b-41d4-a716-446655440000", "dbSchemaName": "dbSchemaName-example", "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" @@ -1738,7 +1738,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | | dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | | dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | | dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | @@ -1760,7 +1760,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { - "dbUserId": "dbUserId-example", + "dbUserId": "550e8400-e29b-41d4-a716-446655440000", "dbUserName": "dbUserName-example", "host": "host-example", "authorityType": "CUSTOM", @@ -2509,8 +2509,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances |-----|-----|-----|-----| | totalCounts | Body | Number | 유지 관리 목록 갯수 | | maintenances | Body | Array | 유지 관리 목록 | -| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | -| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.maintenanceId | Body | UUID | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | UUID | DB 인스턴스 아이디 | | maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | | maintenances.description | Body | String | 유지 관리 설명 | | maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | @@ -2536,8 +2536,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { - "maintenanceId": "maintenanceId-example", - "dbInstanceId": "dbInstanceId-example", + "maintenanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "category": "USER", "description": "description-example", "type": "UPDATE_DB_INSTANCE", @@ -2722,7 +2722,7 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info |-----|-----|-----|-----| | availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | | subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetId | Body | UUID | 서브넷의 식별자 | | subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnet.subnetCidr | Body | String | 서브넷의 CIDR | | endPoints | Body | Array | 접속 정보 목록 | @@ -2740,9 +2740,9 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "availabilityZone-example", + "availabilityZone": "kr-pub-a", "subnet": { - "subnetId": "subnetId-example", + "subnetId": "550e8400-e29b-41d4-a716-446655440000", "subnetName": "subnetName-example", "subnetCidr": "subnetCidr-example" }, @@ -2977,10 +2977,10 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useSlowQueryAnalysis": true, "network": { "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3120,10 +3120,10 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info | latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | | restorableBackups | Body | Array | 복원 가능한 백업 목록 | | restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | | restorableBackups.backup.backupName | Body | String | 백업 이름 | | restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | | restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3151,12 +3151,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "restorableBackups": [ { "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "backupType": "AUTO", "backupSize": 1, "useBackupLock": false, @@ -3326,7 +3326,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3335,7 +3335,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -3528,7 +3528,7 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "storageType-example", + "storageType": "General SSD", "storageSize": 1, "storageStatus": "DELETED", "storageAutoscale": { @@ -3648,10 +3648,10 @@ GET /v4.0/backups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 백업 목록 수 | | backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupId | Body | UUID | 백업의 식별자 | | backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backups.dbVersion | Body | Enum | DB 엔진 유형 | | backups.utilVersion | Body | String | 유틸리티 버전 | | backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3672,11 +3672,11 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbVersion": "ENUM_VALUE", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupSize": 1, @@ -3823,11 +3823,11 @@ GET /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | String | 백업의 식별자 | +| backup.backupId | Body | UUID | 백업의 식별자 | | backup.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | | backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | backup.dbVersion | Body | Enum | DB 엔진 버전 | | backup.utilVersion | Body | String | 유틸리티 버전 | @@ -3852,13 +3852,13 @@ GET /v4.0/backups/{backupId} "isSuccessful": true }, "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "regionCode": "KR1", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupMethodType": "FULL", @@ -4025,10 +4025,10 @@ POST /v4.0/backups/{backupId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -4111,7 +4111,7 @@ GET /v4.0/db-security-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | | dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | @@ -4131,7 +4131,7 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", @@ -4205,7 +4205,7 @@ POST /v4.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 |

예시

@@ -4217,7 +4217,7 @@ POST /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4276,12 +4276,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | description | Body | String | DB 보안 그룹에 대한 추가 정보 | | progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | | rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | | rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | | rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | | rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | @@ -4305,13 +4305,13 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", "rules": [ { - "ruleId": "ruleId-example", + "ruleId": "550e8400-e29b-41d4-a716-446655440000", "description": "description-example", "direction": "INGRESS", "etherType": "IPV4", @@ -4399,7 +4399,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4411,7 +4411,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4470,7 +4470,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4482,7 +4482,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4542,7 +4542,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4554,7 +4554,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4587,7 +4587,7 @@ GET /v4.0/parameter-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 파라미터 그룹 수 | | parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | | parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | @@ -4609,10 +4609,10 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupType": "USER", "parameterGroupStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4654,7 +4654,7 @@ POST /v4.0/parameter-groups { "parameterGroupName": "parameterGroupName", "description": "description-example", - "dbVersion": "ENUM_VALUE" + "dbVersion": "MYSQL_V8036" } ``` @@ -4665,7 +4665,7 @@ POST /v4.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4677,7 +4677,7 @@ POST /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4736,13 +4736,13 @@ GET /v4.0/parameter-groups/{parameterGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | description | Body | String | 파라미터 그룹에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | | parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | | parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterId | Body | UUID | 파라미터의 식별자 | | parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | | parameters.parameterName | Body | String | 파라미터 이름 | | parameters.fileParameterName | Body | String | 파라미터 파일 이름 | @@ -4764,14 +4764,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "parameters": [ { - "parameterId": "parameterId-example", + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "parameterFileGroup": "CLIENT", "parameterName": "parameterName-example", "fileParameterName": "fileParameterName-example", @@ -4868,7 +4868,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4880,7 +4880,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4983,7 +4983,7 @@ GET /v4.0/user-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroups.createdYmdt | Body | DateTime | 생성 일시 | | userGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -5001,7 +5001,7 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -5053,7 +5053,7 @@ POST /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 |

예시

@@ -5065,7 +5065,7 @@ POST /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "userGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5124,11 +5124,11 @@ GET /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5142,12 +5142,12 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "userGroupTypeCode": "ENTIRE", "members": [ { - "memberId": "memberId-example" + "memberId": "550e8400-e29b-41d4-a716-446655440000" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -5224,7 +5224,7 @@ GET /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | | notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | @@ -5244,7 +5244,7 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, @@ -5305,7 +5305,7 @@ POST /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 |

예시

@@ -5317,7 +5317,7 @@ POST /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example" + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5376,16 +5376,16 @@ GET /v4.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notifyEmail | Body | Boolean | 이메일 알림 여부 | | notifySms | Body | Boolean | SMS 알림 여부 | | isEnabled | Body | Boolean | 활성화 여부 | | dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5400,20 +5400,20 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, "isEnabled": false, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example" } ], @@ -5698,7 +5698,7 @@ GET /v4.0/event-subscriptions |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | | eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | | eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | | eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | | eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | @@ -5724,7 +5724,7 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "eventSubscriptionId-example", + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL", "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, @@ -5804,7 +5804,7 @@ POST /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 |

예시

@@ -5816,7 +5816,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000" } ``` diff --git a/mariadb/ko/api-guide-v4.0.md b/mariadb/ko/api-guide-v4.0.md index a553dd98..3b5b36a4 100644 --- a/mariadb/ko/api-guide-v4.0.md +++ b/mariadb/ko/api-guide-v4.0.md @@ -99,7 +99,7 @@ GET /v4.0/project/members | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | members.memberName | Body | String | 프로젝트 멤버의 이름 | | members.emailAddress | Body | String | 프로젝트 멤버의 이메일 주소 | | members.phoneNumber | Body | String | 프로젝트 멤버의 전화번호 | @@ -116,7 +116,7 @@ GET /v4.0/project/members }, "members": [ { - "memberId": "memberId-example", + "memberId": "550e8400-e29b-41d4-a716-446655440000", "memberName": "memberName-example", "emailAddress": "emailAddress-example", "phoneNumber": "phoneNumber-example" @@ -201,7 +201,7 @@ GET /v4.0/db-flavors | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbFlavors | Body | Array | DB 인스턴스 사양 목록 | -| dbFlavors.dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | +| dbFlavors.dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | | dbFlavors.dbFlavorName | Body | String | DB 인스턴스 사양 이름 | | dbFlavors.ram | Body | Number | 메모리 용량(MB) | | dbFlavors.vcpus | Body | Number | CPU 코어 수 | @@ -218,7 +218,7 @@ GET /v4.0/db-flavors }, "dbFlavors": [ { - "dbFlavorId": "dbFlavorId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbFlavorName": "dbFlavorName-example", "ram": 1, "vcpus": 1 @@ -327,7 +327,7 @@ GET /v4.0/db-versions }, "dbVersions": [ { - "dbVersion": "dbVersion-example", + "dbVersion": "MYSQL_V8036", "dbVersionName": "dbVersionName-example", "restorableFromObs": false } @@ -426,7 +426,7 @@ GET /v4.0/jobs/{jobId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 | | jobStatus | Body | Enum | 작업의 현재 상태
- DELETED
- CANNOT_PROGRESS
- FAILED
- ERROR
- CANCELED
- INTERRUPTED
- COMPLETED
- RUNNING
- PREPARING
- READY
- CREATED
- FAIL_TO_READY
- REGISTERED
- FAIL_TO_REGISTER
- WAIT_TO_REGISTER | | resourceRelations | Body | Array | 연관 리소스 목록 | | resourceRelations.resourceType | Body | String | 연관 리소스 유형 | @@ -444,7 +444,7 @@ GET /v4.0/jobs/{jobId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example", + "jobId": "550e8400-e29b-41d4-a716-446655440000", "jobStatus": "DELETED", "resourceRelations": [ { @@ -485,7 +485,7 @@ GET /v4.0/db-instance-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstanceGroups | Body | Array | DB 인스턴스 그룹 목록 | -| dbInstanceGroups.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroups.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceGroups.replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstanceGroups.createdYmdt | Body | DateTime | 생성 일시 | | dbInstanceGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -502,7 +502,7 @@ GET /v4.0/db-instance-groups }, "dbInstanceGroups": [ { - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -540,10 +540,10 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | replicationType | Body | Enum | DB 인스턴스 그룹의 복제 형태
- STANDALONE: `고가용성 사용 안함`
- HIGH_AVAILABILITY: `고가용성 사용` | | dbInstances | Body | Array | DB 인스턴스 그룹에 속한 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceType | Body | Enum | DB 인스턴스의 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstances.dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | createdYmdt | Body | DateTime | 생성 일시 | @@ -559,11 +559,11 @@ GET /v4.0/db-instance-groups/{dbInstanceGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "replicationType": "STANDALONE", "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE" } @@ -646,8 +646,8 @@ GET /v4.0/db-instances | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbInstances | Body | Array | DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstances.dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | dbInstances.description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbInstances.dbVersion | Body | Enum | DB 엔진 유형 | @@ -670,11 +670,11 @@ GET /v4.0/db-instances }, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", @@ -765,7 +765,7 @@ POST /v4.0/db-instances "dbInstanceName": "dbInstanceName", "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbUserName": "dbUserName", "dbPassword": "dbPassword", @@ -782,10 +782,10 @@ POST /v4.0/db-instances "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -912,11 +912,11 @@ POST /v4.0/db-instances/restore-from-obs "description": "description-example", "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "dbPort": 1, - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -925,7 +925,7 @@ POST /v4.0/db-instances/restore-from-obs "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -1064,8 +1064,8 @@ GET /v4.0/db-instances/{dbInstanceId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbInstanceId | Body | String | DB 인스턴스의 식별자 | -| dbInstanceGroupId | Body | String | DB 인스턴스 그룹의 식별자 | +| dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | +| dbInstanceGroupId | Body | UUID | DB 인스턴스 그룹의 식별자 | | dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | description | Body | String | DB 인스턴스에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | @@ -1073,8 +1073,8 @@ GET /v4.0/db-instances/{dbInstanceId} | dbInstanceType | Body | Enum | DB 인스턴스 역할 타입
- MASTER: `마스터`
- FAILED_MASTER: `장애 마스터`
- CANDIDATE_MASTER: `예비 마스터`
- READ_ONLY_SLAVE: `읽기 복제본` | | dbInstanceStatus | Body | Enum | DB 인스턴스의 현재 상태
- BEFORE_CREATE: `생성 이전 (회색)`
- AVAILABLE: `사용 가능 (녹색)`
- STORAGE_FULL: `용량 부족 (적색)`
- FAIL_TO_CREATE: `생성 실패 (적색)`
- FAIL_TO_CONNECT: `연결 실패 (적색)`
- REPLICATION_STOP: `복제 중단 (적색)`
- REPLICATION_DELAY: `복제 지연 (황색)`
- FAILOVER: `장애 조치 완료 (적색)`
- SHUTDOWN: `중지 됨 (회색)`
- DELETED: `삭제됨 (회색)` | | progressStatus | Body | Enum | DB 인스턴스의 현재 진행 상태
- NONE
- APPLYING_PARAMETER_GROUP
- BACKING_UP
- CANCELING
- CREATING
- CREATING_SCHEMA
- CREATING_USER
- DELETING
- DELETING_SCHEMA
- DELETING_USER
- EXPORTING_BACKUP
- FAILING_OVER
- MIGRATING
- MODIFYING
- PREPARING
- PROMOTING
- PROMOTING_FORCIBLY
- REBUILDING
- REPAIRING
- REPLICATING
- RESTARTING
- RESTARTING_FORCIBLY
- RESTORING
- STARTING
- STOPPING
- SYNCING_SCHEMA
- SYNCING_USER
- UPDATING_USER
- WAIT_MANUAL_CONTROL | -| dbFlavorId | Body | String | DB 인스턴스 사양의 식별자 | -| parameterGroupId | Body | String | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | +| dbFlavorId | Body | UUID | DB 인스턴스 사양의 식별자 | +| parameterGroupId | Body | UUID | DB 인스턴스에 적용된 파라미터 그룹의 식별자 | | dbSecurityGroupIds | Body | Array | DB 인스턴스에 적용된 DB 보안 그룹의 식별자 목록 | | notificationGroupIds | Body | Array | DB 인스턴스에 적용된 알림 그룹의 식별자 목록 | | useDeletionProtection | Body | Boolean | DB 인스턴스 삭제 보호 여부 | @@ -1096,17 +1096,17 @@ GET /v4.0/db-instances/{dbInstanceId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbInstanceId": "dbInstanceId-example", - "dbInstanceGroupId": "dbInstanceGroupId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "dbPort": 1, "dbInstanceType": "MASTER", "dbInstanceStatus": "BEFORE_CREATE", "progressStatus": "NONE", - "dbFlavorId": "dbFlavorId-example", - "parameterGroupId": "parameterGroupId-example", + "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupIds": [], "notificationGroupIds": [], "useDeletionProtection": false, @@ -1168,7 +1168,7 @@ PUT /v4.0/db-instances/{dbInstanceId} "dbPort": 1, "dbFlavorId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "useSlowQueryAnalysis": false, "useDummy": false, "dbSecurityGroupIds": [], @@ -1580,7 +1580,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbSchemas | Body | Array | DB 스키마 목록 | -| dbSchemas.dbSchemaId | Body | String | DB 스키마의 식별자 | +| dbSchemas.dbSchemaId | Body | UUID | DB 스키마의 식별자 | | dbSchemas.dbSchemaName | Body | String | DB 스키마 이름 | | dbSchemas.dbSchemaStatus | Body | Enum | DB 스키마의 현재 상태
- STABLE
- CREATING
- SYNCING
- DELETING
- DELETED | | dbSchemas.createdYmdt | Body | DateTime | 생성 일시 | @@ -1597,7 +1597,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-schemas }, "dbSchemas": [ { - "dbSchemaId": "dbSchemaId-example", + "dbSchemaId": "550e8400-e29b-41d4-a716-446655440000", "dbSchemaName": "dbSchemaName-example", "dbSchemaStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00" @@ -1738,7 +1738,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | dbUsers | Body | Array | DB 사용자 목록 | -| dbUsers.dbUserId | Body | String | DB 사용자의 식별자 | +| dbUsers.dbUserId | Body | UUID | DB 사용자의 식별자 | | dbUsers.dbUserName | Body | String | DB 사용자 계정 이름 | | dbUsers.host | Body | String | DB 사용자 계정의 호스트 이름 | | dbUsers.authorityType | Body | Enum | DB 사용자 권한 타입
- CUSTOM: `사용자 정의 권한`
- READ: `읽기 권한`
- CRUD: `CRUD 권한`
- DDL: `DDL 권한`
- ALL: `전체 권한` | @@ -1760,7 +1760,7 @@ GET /v4.0/db-instances/{dbInstanceId}/db-users }, "dbUsers": [ { - "dbUserId": "dbUserId-example", + "dbUserId": "550e8400-e29b-41d4-a716-446655440000", "dbUserName": "dbUserName-example", "host": "host-example", "authorityType": "CUSTOM", @@ -2509,8 +2509,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances |-----|-----|-----|-----| | totalCounts | Body | Number | 유지 관리 목록 갯수 | | maintenances | Body | Array | 유지 관리 목록 | -| maintenances.maintenanceId | Body | String | 유지 관리 아이디 | -| maintenances.dbInstanceId | Body | String | DB 인스턴스 아이디 | +| maintenances.maintenanceId | Body | UUID | 유지 관리 아이디 | +| maintenances.dbInstanceId | Body | UUID | DB 인스턴스 아이디 | | maintenances.category | Body | Enum | 유지 관리 카테고리
- USER: `사용자 유지 관리 카테고리`
- PROVIDER: `Provider 유지 관리 카테고리`
- AUTO: `자동 유지 관리 카테고리` | | maintenances.description | Body | String | 유지 관리 설명 | | maintenances.type | Body | Enum | 유지 관리 타입
- UPDATE_DB_INSTANCE: `DB 인스턴스 수정(사양 변경, 포트 변경, 파라미터 그룹 변경)`
- UPGRADE_ENGINE_VERSION: `엔진 버전 업그레이드`
- APPLY_CHANGE_PARAMETER: `파라미터 그룹의 파라미터 변경`
- UPGRADE_OS: `운영체제 버전 업그레이드`
- PATCH_SECURITY: `보안 업데이트`
- MIGRATION: `하이퍼바이저 점검을 위한 마이그레이션`
- CLEANUP_STORAGE: `스토리지 정리` | @@ -2536,8 +2536,8 @@ GET /v4.0/db-instances/{dbInstanceId}/maintenances "totalCounts": 1, "maintenances": [ { - "maintenanceId": "maintenanceId-example", - "dbInstanceId": "dbInstanceId-example", + "maintenanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "category": "USER", "description": "description-example", "type": "UPDATE_DB_INSTANCE", @@ -2722,7 +2722,7 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info |-----|-----|-----|-----| | availabilityZone | Body | String | DB 인스턴스를 생성할 가용성 영역 | | subnet | Body | Object | 서브넷 객체 | -| subnet.subnetId | Body | String | 서브넷의 식별자 | +| subnet.subnetId | Body | UUID | 서브넷의 식별자 | | subnet.subnetName | Body | String | 서브넷을 식별할 수 있는 이름 | | subnet.subnetCidr | Body | String | 서브넷의 CIDR | | endPoints | Body | Array | 접속 정보 목록 | @@ -2740,9 +2740,9 @@ GET /v4.0/db-instances/{dbInstanceId}/network-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "availabilityZone": "availabilityZone-example", + "availabilityZone": "kr-pub-a", "subnet": { - "subnetId": "subnetId-example", + "subnetId": "550e8400-e29b-41d4-a716-446655440000", "subnetName": "subnetName-example", "subnetCidr": "subnetCidr-example" }, @@ -2977,10 +2977,10 @@ POST /v4.0/db-instances/{dbInstanceId}/replicate "useSlowQueryAnalysis": true, "network": { "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3120,10 +3120,10 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info | latestRestorableYmdt | Body | DateTime | 가장 최신의 복원 가능한 시각 | | restorableBackups | Body | Array | 복원 가능한 백업 목록 | | restorableBackups.backup | Body | Object | 백업 정보 객체 | -| restorableBackups.backup.backupId | Body | String | 백업의 식별자 | +| restorableBackups.backup.backupId | Body | UUID | 백업의 식별자 | | restorableBackups.backup.backupName | Body | String | 백업 이름 | | restorableBackups.backup.backupStatus | Body | Enum | 백업 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| restorableBackups.backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| restorableBackups.backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | restorableBackups.backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | restorableBackups.backup.dbVersion | Body | Enum | DB 엔진 유형 | | restorableBackups.backup.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3151,12 +3151,12 @@ GET /v4.0/db-instances/{dbInstanceId}/restoration-info "restorableBackups": [ { "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "backupType": "AUTO", "backupSize": 1, "useBackupLock": false, @@ -3326,7 +3326,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "useHighAvailability": false, "pingInterval": 3, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -3335,7 +3335,7 @@ POST /v4.0/db-instances/{dbInstanceId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "backup": { "backupPeriod": 0, @@ -3528,7 +3528,7 @@ GET /v4.0/db-instances/{dbInstanceId}/storage-info "resultMessage": "SUCCESS", "isSuccessful": true }, - "storageType": "storageType-example", + "storageType": "General SSD", "storageSize": 1, "storageStatus": "DELETED", "storageAutoscale": { @@ -3648,10 +3648,10 @@ GET /v4.0/backups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 백업 목록 수 | | backups | Body | Array | 백업 목록 | -| backups.backupId | Body | String | 백업의 식별자 | +| backups.backupId | Body | UUID | 백업의 식별자 | | backups.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backups.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backups.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backups.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backups.dbVersion | Body | Enum | DB 엔진 유형 | | backups.utilVersion | Body | String | 유틸리티 버전 | | backups.backupType | Body | Enum | 백업 유형
- AUTO
- MANUAL | @@ -3672,11 +3672,11 @@ GET /v4.0/backups "totalCounts": 1, "backups": [ { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", - "dbVersion": "ENUM_VALUE", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupSize": 1, @@ -3823,11 +3823,11 @@ GET /v4.0/backups/{backupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | backup | Body | Object | 백업 상세 정보 | -| backup.backupId | Body | String | 백업의 식별자 | +| backup.backupId | Body | UUID | 백업의 식별자 | | backup.regionCode | Body | Enum | 리전 코드
- KR1: `한국(판교)` | | backup.backupName | Body | String | 백업을 식별할 수 있는 이름 | | backup.backupStatus | Body | Enum | 백업의 현재 상태
- BACKING_UP: `백업 중 (스피너)`
- VERIFYING: `검증 중 (스피너)`
- COMPLETED: `사용 가능 (녹색 아이콘)`
- DELETING: `삭제 중 (스피너)`
- DELETED: `삭제 됨 (회색 아이콘)`
- ERROR: `에러 (적색 아이콘)` | -| backup.dbInstanceId | Body | String | 원본 DB 인스턴스의 식별자 | +| backup.dbInstanceId | Body | UUID | 원본 DB 인스턴스의 식별자 | | backup.dbInstanceName | Body | String | 원본 DB 인스턴스의 이름 | | backup.dbVersion | Body | Enum | DB 엔진 버전 | | backup.utilVersion | Body | String | 유틸리티 버전 | @@ -3852,13 +3852,13 @@ GET /v4.0/backups/{backupId} "isSuccessful": true }, "backup": { - "backupId": "backupId-example", + "backupId": "550e8400-e29b-41d4-a716-446655440000", "regionCode": "KR1", "backupName": "backupName-example", "backupStatus": "BACKING_UP", - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "utilVersion": "utilVersion-example", "backupType": "AUTO", "backupMethodType": "FULL", @@ -4025,10 +4025,10 @@ POST /v4.0/backups/{backupId}/restore "network": { "subnetId": "550e8400-e29b-41d4-a716-446655440000", "usePublicAccess": false, - "availabilityZone": "ENUM_VALUE" + "availabilityZone": "kr-pub-a" }, "storage": { - "storageType": "ENUM_VALUE", + "storageType": "General SSD", "storageSize": 20, "storageAutoscale": { "useStorageAutoscale": false @@ -4111,7 +4111,7 @@ GET /v4.0/db-security-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 DB 보안 그룹 목록 수 | | dbSecurityGroups | Body | Array | DB 보안 그룹 목록 | -| dbSecurityGroups.dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroups.dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroups.dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | dbSecurityGroups.description | Body | String | DB 보안 그룹에 대한 추가 정보 | | dbSecurityGroups.progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | @@ -4131,7 +4131,7 @@ GET /v4.0/db-security-groups "totalCounts": 1, "dbSecurityGroups": [ { - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", @@ -4205,7 +4205,7 @@ POST /v4.0/db-security-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 |

예시

@@ -4217,7 +4217,7 @@ POST /v4.0/db-security-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example" + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4276,12 +4276,12 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| dbSecurityGroupId | Body | String | DB 보안 그룹의 식별자 | +| dbSecurityGroupId | Body | UUID | DB 보안 그룹의 식별자 | | dbSecurityGroupName | Body | String | DB 보안 그룹을 식별할 수 있는 이름 | | description | Body | String | DB 보안 그룹에 대한 추가 정보 | | progressStatus | Body | Enum | DB 보안 그룹의 현재 진행 상태
- NONE: `없음`
- CREATING_RULE: `규칙 생성중`
- UPDATING_RULE: `규칙 수정중`
- DELETING_RULE: `규칙 삭제중`
- APPLYING_DEFAULT_RULE: `기본 규칙 적용중` | | rules | Body | Array | DB 보안 그룹 규칙 목록 | -| rules.ruleId | Body | String | DB 보안 그룹 규칙의 식별자 | +| rules.ruleId | Body | UUID | DB 보안 그룹 규칙의 식별자 | | rules.description | Body | String | DB 보안 그룹 규칙에 대한 추가 정보 | | rules.direction | Body | Enum | 통신 방향
- INGRESS: `수신`
- EGRESS: `송신` | | rules.etherType | Body | Enum | Ether 타입
- IPV4: `IPv4 형식`
- IPV6: `IPv6 형식` | @@ -4305,13 +4305,13 @@ GET /v4.0/db-security-groups/{dbSecurityGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "dbSecurityGroupId": "dbSecurityGroupId-example", + "dbSecurityGroupId": "550e8400-e29b-41d4-a716-446655440000", "dbSecurityGroupName": "dbSecurityGroupName-example", "description": "description-example", "progressStatus": "NONE", "rules": [ { - "ruleId": "ruleId-example", + "ruleId": "550e8400-e29b-41d4-a716-446655440000", "description": "description-example", "direction": "INGRESS", "etherType": "IPV4", @@ -4399,7 +4399,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4411,7 +4411,7 @@ DELETE /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4470,7 +4470,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4482,7 +4482,7 @@ POST /v4.0/db-security-groups/{dbSecurityGroupId}/rules "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4542,7 +4542,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| jobId | Body | String | 작업의 식별자 | +| jobId | Body | UUID | 작업의 식별자 |

예시

@@ -4554,7 +4554,7 @@ PUT /v4.0/db-security-groups/{dbSecurityGroupId}/rules/{ruleId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "jobId": "jobId-example" + "jobId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4587,7 +4587,7 @@ GET /v4.0/parameter-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 파라미터 그룹 수 | | parameterGroups | Body | Array | 파라미터 그룹 목록 | -| parameterGroups.parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroups.parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroups.parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | parameterGroups.description | Body | String | 파라미터 그룹에 대한 추가 정보 | | parameterGroups.dbVersion | Body | Enum | DB 엔진 유형 | @@ -4609,10 +4609,10 @@ GET /v4.0/parameter-groups "totalCounts": 1, "parameterGroups": [ { - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupType": "USER", "parameterGroupStatus": "STABLE", "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -4654,7 +4654,7 @@ POST /v4.0/parameter-groups { "parameterGroupName": "parameterGroupName", "description": "description-example", - "dbVersion": "ENUM_VALUE" + "dbVersion": "MYSQL_V8036" } ``` @@ -4665,7 +4665,7 @@ POST /v4.0/parameter-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4677,7 +4677,7 @@ POST /v4.0/parameter-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4736,13 +4736,13 @@ GET /v4.0/parameter-groups/{parameterGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 | | parameterGroupName | Body | String | 파라미터 그룹을 식별할 수 있는 이름 | | description | Body | String | 파라미터 그룹에 대한 추가 정보 | | dbVersion | Body | Enum | DB 엔진 유형 | | parameterGroupStatus | Body | Enum | 파라미터 그룹의 현재 상태
- STABLE: `적용 완료`
- NEED_TO_APPLY: `적용 필요`
- DELETED: `삭제됨` | | parameters | Body | Array | 파라미터 목록 | -| parameters.parameterId | Body | String | 파라미터의 식별자 | +| parameters.parameterId | Body | UUID | 파라미터의 식별자 | | parameters.parameterFileGroup | Body | Enum | 파라미터 파일 그룹 타입
- CLIENT
- MYSQL
- MYSQLD | | parameters.parameterName | Body | String | 파라미터 이름 | | parameters.fileParameterName | Body | String | 파라미터 파일 이름 | @@ -4764,14 +4764,14 @@ GET /v4.0/parameter-groups/{parameterGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example", + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000", "parameterGroupName": "parameterGroupName-example", "description": "description-example", - "dbVersion": "ENUM_VALUE", + "dbVersion": "MYSQL_V8036", "parameterGroupStatus": "STABLE", "parameters": [ { - "parameterId": "parameterId-example", + "parameterId": "550e8400-e29b-41d4-a716-446655440000", "parameterFileGroup": "CLIENT", "parameterName": "parameterName-example", "fileParameterName": "fileParameterName-example", @@ -4868,7 +4868,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| parameterGroupId | Body | String | 파라미터 그룹의 식별자 | +| parameterGroupId | Body | UUID | 파라미터 그룹의 식별자 |

예시

@@ -4880,7 +4880,7 @@ POST /v4.0/parameter-groups/{parameterGroupId}/copy "resultMessage": "SUCCESS", "isSuccessful": true }, - "parameterGroupId": "parameterGroupId-example" + "parameterGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -4983,7 +4983,7 @@ GET /v4.0/user-groups |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 사용자 그룹 목록 수 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroups.createdYmdt | Body | DateTime | 생성 일시 | | userGroups.updatedYmdt | Body | DateTime | 수정 일시 | @@ -5001,7 +5001,7 @@ GET /v4.0/user-groups "totalCounts": 1, "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "createdYmdt": "2023-12-31T15:00:00+09:00", "updatedYmdt": "2023-12-31T15:00:00+09:00" @@ -5053,7 +5053,7 @@ POST /v4.0/user-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 |

예시

@@ -5065,7 +5065,7 @@ POST /v4.0/user-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example" + "userGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5124,11 +5124,11 @@ GET /v4.0/user-groups/{userGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | userGroupTypeCode | Body | Enum | 사용자 그룹 종류
- ENTIRE
- INDIVIDUAL_MEMBER | | members | Body | Array | 프로젝트 멤버 목록 | -| members.memberId | Body | String | 프로젝트 멤버의 식별자 | +| members.memberId | Body | UUID | 프로젝트 멤버의 식별자 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5142,12 +5142,12 @@ GET /v4.0/user-groups/{userGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example", "userGroupTypeCode": "ENTIRE", "members": [ { - "memberId": "memberId-example" + "memberId": "550e8400-e29b-41d4-a716-446655440000" } ], "createdYmdt": "2023-12-31T15:00:00+09:00", @@ -5224,7 +5224,7 @@ GET /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| | notificationGroups | Body | Array | 알림 그룹 목록 | -| notificationGroups.notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroups.notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroups.notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notificationGroups.notifyEmail | Body | Boolean | 이메일 알림 여부 | | notificationGroups.notifySms | Body | Boolean | SMS 알림 여부 | @@ -5244,7 +5244,7 @@ GET /v4.0/notification-groups }, "notificationGroups": [ { - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, @@ -5305,7 +5305,7 @@ POST /v4.0/notification-groups | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 |

예시

@@ -5317,7 +5317,7 @@ POST /v4.0/notification-groups "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example" + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000" } ``` @@ -5376,16 +5376,16 @@ GET /v4.0/notification-groups/{notificationGroupId} | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| notificationGroupId | Body | String | 알림 그룹의 식별자 | +| notificationGroupId | Body | UUID | 알림 그룹의 식별자 | | notificationGroupName | Body | String | 알림 그룹을 식별할 수 있는 이름 | | notifyEmail | Body | Boolean | 이메일 알림 여부 | | notifySms | Body | Boolean | SMS 알림 여부 | | isEnabled | Body | Boolean | 활성화 여부 | | dbInstances | Body | Array | 감시 대상 DB 인스턴스 목록 | -| dbInstances.dbInstanceId | Body | String | DB 인스턴스의 식별자 | +| dbInstances.dbInstanceId | Body | UUID | DB 인스턴스의 식별자 | | dbInstances.dbInstanceName | Body | String | DB 인스턴스를 식별할 수 있는 이름 | | userGroups | Body | Array | 사용자 그룹 목록 | -| userGroups.userGroupId | Body | String | 사용자 그룹의 식별자 | +| userGroups.userGroupId | Body | UUID | 사용자 그룹의 식별자 | | userGroups.userGroupName | Body | String | 사용자 그룹을 식별할 수 있는 이름 | | createdYmdt | Body | DateTime | 생성 일시 | | updatedYmdt | Body | DateTime | 수정 일시 | @@ -5400,20 +5400,20 @@ GET /v4.0/notification-groups/{notificationGroupId} "resultMessage": "SUCCESS", "isSuccessful": true }, - "notificationGroupId": "notificationGroupId-example", + "notificationGroupId": "550e8400-e29b-41d4-a716-446655440000", "notificationGroupName": "notificationGroupName-example", "notifyEmail": false, "notifySms": false, "isEnabled": false, "dbInstances": [ { - "dbInstanceId": "dbInstanceId-example", + "dbInstanceId": "550e8400-e29b-41d4-a716-446655440000", "dbInstanceName": "dbInstanceName-example" } ], "userGroups": [ { - "userGroupId": "userGroupId-example", + "userGroupId": "550e8400-e29b-41d4-a716-446655440000", "userGroupName": "userGroupName-example" } ], @@ -5698,7 +5698,7 @@ GET /v4.0/event-subscriptions |-----|-----|-----|-----| | totalCounts | Body | Number | 전체 이벤트 구독 목록 수 | | eventSubscriptions | Body | Array | 이벤트 구독 목록 | -| eventSubscriptions.eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptions.eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 | | eventSubscriptions.eventCategoryType | Body | Enum | 이벤트 카테고리 유형
- ALL
- INSTANCE
- DB_SECURITY_GROUP
- MONITORING
- JOB
- BACKUP
- TENANT | | eventSubscriptions.eventSubscriptionName | Body | String | 이벤트 구독의 식별할 수 있는 이름 | | eventSubscriptions.enabled | Body | Boolean | 활성화 여부 | @@ -5724,7 +5724,7 @@ GET /v4.0/event-subscriptions "totalCounts": 1, "eventSubscriptions": [ { - "eventSubscriptionId": "eventSubscriptionId-example", + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000", "eventCategoryType": "ALL", "eventSubscriptionName": "eventSubscriptionName-example", "enabled": false, @@ -5804,7 +5804,7 @@ POST /v4.0/event-subscriptions | 이름 | 종류 | 형식 | 설명 | |-----|-----|-----|-----| -| eventSubscriptionId | Body | String | 이벤트 구독의 식별자 | +| eventSubscriptionId | Body | UUID | 이벤트 구독의 식별자 |

예시

@@ -5816,7 +5816,7 @@ POST /v4.0/event-subscriptions "resultMessage": "SUCCESS", "isSuccessful": true }, - "eventSubscriptionId": "eventSubscriptionId-example" + "eventSubscriptionId": "550e8400-e29b-41d4-a716-446655440000" } ```