runlot
참조API

DNS 존

dns 묶음의 오퍼레이션 8 개입니다.

메서드경로하는 일
GET/v1/orgs/{orgSlug}/dns/zones존 목록 (runlot dns zones)
POST/v1/orgs/{orgSlug}/dns/zones존을 만든다 (runlot dns create)
GET/v1/orgs/{orgSlug}/dns/zones/{zone}존 하나와 레코드 전부
DELETE/v1/orgs/{orgSlug}/dns/zones/{zone}존을 지운다 (runlot dns delete)
PUT/v1/orgs/{orgSlug}/dns/zones/{zone}/rrsets/{name}/{type}레코드를 만들거나 바꾼다 (runlot dns set)
DELETE/v1/orgs/{orgSlug}/dns/zones/{zone}/rrsets/{name}/{type}레코드를 지운다 (runlot dns rm)
POST/v1/orgs/{orgSlug}/dns/zones/{zone}/dnssec존 서명을 켜거나 끈다
PUT/v1/orgs/{orgSlug}/dns/zones/{zone}/dnssec/ds부모에 올릴 DS 를 적어 둔다

GET /v1/orgs/{orgSlug}/dns/zones

이 조직이 우리 네임서버로 운영하는 존들이다 (docs/domains.md §4). rrsets 는 없다 — 단건 조회에만 실린다. viewer 이상.

operationId listZones

응답본문
200목록ZoneList
403
404
503자체 DNS 가 꺼진 배치다 (dns_not_configured), 또는 cp-core 주소 없이 뜬 cp-public 이다 (no_core).Error

POST /v1/orgs/{orgSlug}/dns/zones

멱등이다 — 이미 있는 존은 그대로 돌아온다. 존 하나는 SOA(생성기가 serial 로 만든다)와 apex NS rrset 을 갖고 태어나고, 그 NS 는 managed_by = system 이라 편집기에서 잠긴다: 사용자가 지우면 도메인이 통째로 안 풀린다 (§7).

존을 만든 것만으로는 아직 아무 이름도 우리 답을 받지 않는다. 등록기관 에서 NS 를 nameservers 로 바꿔야 위임이 선다 (delegation 배지가 그 상태다). admin 이상. 감사 dns.zone.create.

operationId createZone

본문 application/json · object

응답본문
200만들어졌거나 이미 있던 존ZoneDetail
400
403
404
409다른 조직이 이미 가진 존이다 (zone_taken)Error
503자체 DNS 가 꺼진 배치다 (dns_not_configured), 또는 cp-core 주소 없이 뜬 cp-public 이다 (no_core).Error

GET /v1/orgs/{orgSlug}/dns/zones/{zone}

viewer 이상.

operationId getZone

응답본문
200존과 rrsetZoneDetail
403
404
503자체 DNS 가 꺼진 배치다 (dns_not_configured), 또는 cp-core 주소 없이 뜬 cp-public 이다 (no_core).Error

DELETE /v1/orgs/{orgSlug}/dns/zones/{zone}

레코드가 전부 함께 사라지고 존 파일도 치운다. 위임이 아직 우리를 가리키면 그 도메인은 안 풀린다 — 지우기 전에 등록기관에서 NS 를 옮긴다. admin 이상. 감사 dns.zone.delete.

operationId deleteZone

응답본문
204지웠다
403
404
503자체 DNS 가 꺼진 배치다 (dns_not_configured), 또는 cp-core 주소 없이 뜬 cp-public 이다 (no_core).Error

PUT /v1/orgs/{orgSlug}/dns/zones/{zone}/rrsets/{name}/{type}

rrset 하나(이름+타입)를 통째로 바꾼다 — 값 하나를 더하는 것이 아니라 records 가 그 rrset 의 새 전부다.

검증은 저장 시점에 선다 (§4.3): CNAME 은 apex 에 못 오고 같은 이름의 다른 타입과 공존하지 못하며, A/AAAA·MX·SRV·CAA 는 모양을 본다. 255 바이트를 넘는 TXT 는 존 파일에서 조각으로 나뉜다. managed_by 가 있는 행(앱 연결·ACME·존의 NS)은 409 managed_rrset 이다.

member 이상. 감사 dns.rrset.set.

operationId putRRset

본문 application/json · object

응답본문
200저장된 rrsetRRset
400
403
404
409앱이 관리하는 행이거나(managed_rrset) CNAME 공존 금지에 걸렸다(cname_conflict)Error
503자체 DNS 가 꺼진 배치다 (dns_not_configured), 또는 cp-core 주소 없이 뜬 cp-public 이다 (no_core).Error

DELETE /v1/orgs/{orgSlug}/dns/zones/{zone}/rrsets/{name}/{type}

관리 행은 409 managed_rrset 이다 — 앱 연결을 끊는 것은 "삭제" 가 아니라 프로젝트의 도메인 화면에서 하는 연결 해제다 (§7). member 이상. 감사 dns.rrset.delete.

operationId deleteRRset

응답본문
204지웠다
403
404
409앱이 관리하는 행이다 (managed_rrset)Error
503자체 DNS 가 꺼진 배치다 (dns_not_configured), 또는 cp-core 주소 없이 뜬 cp-public 이다 (no_core).Error

POST /v1/orgs/{orgSlug}/dns/zones/{zone}/dnssec

off → signing. 서명은 네임서버(Knot)가 하고 키 재료는 CP 에 오지 않는다 (§4.5). 끄면 기록해 둔 DS 도 지운다 — 옛 키의 DS 를 부모에 올리면 도메인이 통째로 안 풀린다. admin 이상.

operationId setZoneDNSSEC

본문 application/json · object

응답본문
200바뀐 존Zone
403
404
503자체 DNS 가 꺼진 배치다 (dns_not_configured), 또는 cp-core 주소 없이 뜬 cp-public 이다 (no_core).Error

PUT /v1/orgs/{orgSlug}/dns/zones/{zone}/dnssec/ds

CP 는 부모 존을 조회하지 않는다. 이 값은 네임서버가 만든 DS 를 운영자(또는 D3 의 등록기관 동기화)가 알려 준 사실이고, 상태는 signing → ds_pending 으로 간다. 빈 목록은 "아직 없다" 라서 상태를 앞으로 밀지 않는다. admin 이상.

operationId setZoneDS

본문 application/json · object

응답본문
200바뀐 존Zone
400
403
404
409존의 DNSSEC 이 꺼져 있다 (dnssec_off)Error
503자체 DNS 가 꺼진 배치다 (dns_not_configured), 또는 cp-core 주소 없이 뜬 cp-public 이다 (no_core).Error

이 페이지에서