updateDomain

Prev Next

이 가이드는 API 명세를 기반으로 자동 생성했습니다.

Classic/VPC 환경에서 이용 가능합니다.

Ncloud API 표준 규격을 적용한 API입니다.

도메인 정보를 전체 교체(PUT) 방식으로 수정합니다. 생략된 선택 필드는 null/기본값으로 초기화됩니다. 클라이언트는 원하는 전체 표현을 그대로 전송해야 합니다. 수정은 비동기로 완료되므로 요청이 접수되면 작업(Operation) 자원을 202 Accepted 로 반환합니다. 완료 여부는 응답의 id 로 GET /domains/operations/{operationId} 를 폴링해 done 으로 확인하며, 완료되면 작업의 results["0"] 에 교체된 도메인 자원이 담깁니다. 작업이 끝나기 전의 도메인 자원은 status 가 PROCESSING 인데, 이는 네임서버 동기화가 아직 끝나지 않았다는 뜻일 뿐이므로 이 상태에서도 후속 변경 요청을 할 수 있습니다. 전체 교체이므로 동시 수정 시 나중 요청이 앞선 변경을 덮어쓸 수 있습니다. 조회에서 받은 ETag 를 If-Match 로 함께 보내면 그 사이 변경된 경우 412 PreconditionFailed 로 거부됩니다.

요청

요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.

메서드 URI
PUT /domains/{domainNo}

요청 헤더

요청 헤더에 대한 설명은 다음과 같습니다.

필드 필수 여부 설명
If-Match Optional 직전 조회에서 받은 ETag
  • 그 이후 자원이 변경되었으면 교체를 거부하고 412 PreconditionFailed
  • 두 클라이언트가 같은 자원을 동시에 수정할 때 앞선 변경을 덮어쓰는 것(lost update) 방지
  • 생략하면 전제 조건 검사 없이 교체

Global DNS API에서 공통으로 사용하는 헤더에 대한 정보는 Global DNS 요청 헤더를 참조해 주십시오.

요청 경로 파라미터

요청 경로 파라미터에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
domainNo Integer (int64) Required 도메인 번호
  • 보유하지 않았거나 존재하지 않는 번호는 403 Forbidden (두 경우를 구분하지 않음)
  • <예시> 120

요청 바디

요청 바디에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
dnssecEnabled Boolean Required DNSSEC 적용 여부
  • true | false
  • <예시> false
description String | null Optional 도메인 설명
  • 길이: ~ 1,000
  • <예시> my domain

요청 예시

요청 예시는 다음과 같습니다.

curl --location --request PUT 'https://globaldns.apigw.gov-ntruss.com/dns/v2/domains/120' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json' \
--data '{
  "dnssecEnabled": false
}'

응답

응답 형식을 설명합니다.

응답 헤더

응답 헤더에 대한 설명은 다음과 같습니다.

필드 필수 여부 설명
Retry-After Optional 권장 폴링 대기 시간(초)
  • 아직 진행 중인 작업·자원에만 포함 (202 응답)

응답 바디

응답 바디에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
id String (uuid) - 작업 ID
  • <예시> 3fa85f64-5717-4562-b3fc-2c963f66afa6
done Boolean - 작업 완료 여부
  • 저장소 반영 시점이 아니라 네임서버에 실제로 반영된 것까지 확인된 시점에 true
  • true 이면 변경이 DNS 질의에 반영된 상태
  • true | false
  • <예시> false
metadata Object<OperationMetadata> - 작업 메타데이터
error Object<Error> | Null - 실패 사유 (완료 및 실패 시에만 존재)
  • 실패는 변경분을 검증해 반영하는 구간(APPLYING)에서만 발생
  • 네임서버 동기화 구간(SYNCHRONIZING)에 들어선 작업은 이미 반영된 변경을 되돌리지 않으므로 실패로 끝나지 않으며, 동기화가 지연되면 완료될 때까지 진행 중으로 남음
results Map<DomainDetailed> - 작업 결과 자원 맵 (요청 인덱스를 문자열 키로 사용)
  • 단건 작업이므로 "0" 하나만 포함
  • 생성·수정 작업이 완료된 경우에만 포함되며, 진행 중이거나 삭제 작업이면 포함되지 않음

Error

에러 정보

필드 타입 필수 여부 설명
errorCode String - 에러 코드
message String - 에러 메시지 (기본 영어, 다국어 지원 가능)
detail String - 에러 상세 정보 (기본 영어, 다국어 지원 가능)
fieldErrors List<FieldError> - 입력값 에러가 발생한 경우 각 필드별 에러 상세 정보 목록

DomainDetailed

도메인 상세

필드 타입 필수 여부 설명
domainNo Integer (int64) - 도메인 번호
  • <예시> 1
name String - 도메인 이름
  • <예시> example.com
applied Boolean - 도메인 처리 완료 여부 (status 에서 파생)
  • true | false
    • true: 처리 완료 (status 가 SUCCEEDED)
    • false: 처리 중 (status 가 PROCESSING)
  • <예시> true
dnssecEnabled Boolean - DNSSEC 적용 여부
  • true | false
  • <예시> true
status String - 도메인 처리 상태
  • 실패 상태 값은 없으며, 완료 판정에는 작업 자원의 done 사용
  • PROCESSING | SUCCEEDED
    • PROCESSING: 생성·수정·삭제 처리 중. 네임서버 동기화가 확인될 때까지 유지
    • SUCCEEDED: 처리 완료. 작업(Operation)의 done 이 true 가 되는 시점과 같음
  • <예시> SUCCEEDED
description String | null - 도메인 설명
  • <예시> my domain
createdTimestamp Integer (int64) - 생성 시각 (Unix epoch 밀리초)
  • <예시> 1568111263000
updatedTimestamp Integer (int64) - 수정 시각 (Unix epoch 밀리초)
  • <예시> 1568111263000
recordCount Integer (int64) - 이 도메인(domainNo)에 속한 레코드 수
  • <예시> 5
soa Object<SoaRecord> - SOA 레코드
  • 항상 객체이며 하위 필드만 null 가능
  • 하위 필드가 모두 null 인 경우: 도메인 설정 적용 전이거나 삭제 처리 중
  • 삭제가 완료된 도메인은 조회 시 403 Forbidden

SoaRecord

SOA 레코드. 사용자가 직접 설정하지 않으며, 도메인 설정 적용 시 시스템이 값을 채웁니다. 적용 전에는 domainName·nameServers·serial·refresh·retry·expire·ttl 이 null 이고, dnssecEnabled 는 항상 값이 있습니다(적용 전에는 false).

필드 타입 필수 여부 설명
domainName String | null - 도메인 이름
  • <예시> example.com
nameServers List<String> | null - 네임서버 목록
  • <예시> ["ns1-1.ns-ncloud.com.", "ns1-2.ns-ncloud.com."]
serial Integer (int64) | null - SOA serial 번호
  • <예시> 2019091001
refresh Integer (int64) | null - SOA refresh (초)
  • <예시> 3600
retry Integer (int64) | null - SOA retry (초)
  • <예시> 600
expire Integer (int64) | null - SOA expire (초)
  • <예시> 604800
ttl Integer (int64) | null - SOA 최소 TTL (초)
  • <예시> 300
dnssecEnabled Boolean - DNSSEC 적용 여부
  • true | false
  • <예시> true

응답 상태 코드

Global DNS API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 Global DNS 응답 상태 코드를 참조해 주십시오.

이 API에만 해당하는 응답 상태 코드는 다음과 같습니다.

HTTP 상태 코드 코드 메시지 설명
202 - - Accepted (수정 접수). 응답 본문은 작업(Operation) 자원이며 done 은 false 입니다. GET /domains/operations/{operationId} 로 폴링해 done 이 true 가 되면 results 에서 교체된 도메인 자원을 확인합니다. 폴링 간격은 Retry-After 헤더를 따릅니다.
412 PreconditionFailed The precondition in one or more of the request fields evaluated to false If-Match 로 보낸 ETag 가 현재 자원과 달라 교체를 거부한 경우. 자원을 다시 조회해 새 ETag 로 재시도

응답 예시

응답 예시는 다음과 같습니다.

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "done": false,
  "metadata": {
    "operationType": "UPDATE",
    "resourceType": "records",
    "startDateTime": "2026-06-30T12:00:00Z",
    "endDateTime": "2026-06-30T12:00:05Z",
    "phase": "SYNCHRONIZING"
  },
  "results": {
    "key": {
      "domainNo": 1,
      "name": "example.com",
      "applied": true,
      "dnssecEnabled": true,
      "status": "SUCCEEDED",
      "description": "my domain",
      "createdTimestamp": 1568111263000,
      "updatedTimestamp": 1568111263000,
      "recordCount": 5,
      "soa": {
        "domainName": "example.com",
        "nameServers": [
          "ns1-1.ns-ncloud.com.",
          "ns1-2.ns-ncloud.com."
        ],
        "serial": 2019091001,
        "refresh": 3600,
        "retry": 600,
        "expire": 604800,
        "ttl": 300,
        "dnssecEnabled": true
      }
    }
  }
}