도메인 구매·갱신
domains 묶음의 오퍼레이션 10 개입니다.
| 메서드 | 경로 | 하는 일 |
|---|---|---|
| GET | /v1/orgs/{orgSlug}/domains | 조직의 도메인 (runlot domains list) |
| POST | /v1/orgs/{orgSlug}/domains | 도메인을 산다 (runlot domains buy) |
| POST | /v1/orgs/{orgSlug}/domains/check | 이름을 찾아본다 (runlot domains check) |
| POST | /v1/orgs/{orgSlug}/domains/import | 이미 가진 도메인을 가져온다 (runlot domains import) |
| GET | /v1/orgs/{orgSlug}/domains/{name} | 도메인 하나와 최근 원장 (runlot domains show) |
| POST | /v1/orgs/{orgSlug}/domains/{name}/renew | 갱신한다 (runlot domains renew) |
| POST | /v1/orgs/{orgSlug}/domains/{name}/auto-renew | 자동 갱신 의사를 바꾼다 |
| POST | /v1/orgs/{orgSlug}/domains/{name}/lock | 이전 잠금을 켜고 끈다 (runlot domains lock|unlock) |
| POST | /v1/orgs/{orgSlug}/domains/{name}/auth-code | 이전 코드를 받는다 (runlot domains auth-code) |
| POST | /v1/orgs/{orgSlug}/domains/{name}/sync | 지금 등록기관에서 다시 읽는다 |
GET /v1/orgs/{orgSlug}/domains
viewer 이상.
operationId listDomains
| 응답 | 뜻 | 본문 |
|---|---|---|
| 200 | 목록 | DomainList |
| 403 | — | — |
| 404 | — | — |
| 503 | no_core — cp-core 없이 뜬 cp-public | Error |
POST /v1/orgs/{orgSlug}/domains
admin 이상 — 돈을 쓴다. 감사 domain.purchase (연락처는 남기지
않는다: 감사는 지울 수 없고 연락처는 개인정보다).
등록 순간부터 NS 는 우리 것이다 (ns1~3.runlot.app) — 그래서 소유
확인 단계가 없고 산 즉시 앱에 붙는다. ICANN 검증 메일이 contact
의 주소로 간다: 화면은 그 사실을 등록 전에 알려야 한다 (§5.5).
같은 요청을 다시 보내는 것이 안전하다. 끝난 도메인이면 200 이고, 중간에 멈춘 구매면 그 자리에서 이어 간다.
operationId purchaseDomain
본문 application/json · object
| 응답 | 뜻 | 본문 |
|---|---|---|
| 200 | 이미 산 도메인 (멱등) | Domain |
| 201 | 샀다 | Domain |
| 400 | — | — |
| 402 | payment_failed — 결제가 거절됐다 | Error |
| 403 | — | — |
| 409 | domain_taken·domain_unavailable | Error |
| 502 | saga_incomplete·registrar_error — 다시 보내면 이어 간다 | Error |
| 503 | no_core·registrar_not_configured·dns_not_configured | Error |
POST /v1/orgs/{orgSlug}/domains/check
member 이상. viewer 가 아닌 이유는 이 호출 하나가 등록기관 API 를 태우기 때문이다 — 읽기처럼 보이지만 바깥으로 나간다.
priceCents 는 첫 등록 1 년, renewalCents 는 갱신 1 년이다. 둘이
나뉘어 있는 이유는 첫해 할인이 흔하기 때문이다.
operationId checkDomains
본문 application/json · object
| 응답 | 뜻 | 본문 |
|---|---|---|
| 200 | 이름별 가용성 | object |
| 400 | — | — |
| 403 | — | — |
| 503 | no_core·registrar_not_configured | Error |
POST /v1/orgs/{orgSlug}/domains/import
admin 이상. 감사 domain.import. 등록기관을 부르지 않는다 — 존
하나를 만들고, 고객이 자기 등록기관에서 NS 를 ns1~3.runlot.app 로
바꾸면 그때부터 전체 DNS 관리가 우리 것이 된다 (§5.6).
operationId importDomain
본문 application/json · object
| 응답 | 뜻 | 본문 |
|---|---|---|
| 200 | 이미 가져온 도메인 (멱등) | Domain |
| 201 | 가져왔다 | Domain |
| 400 | — | — |
| 403 | — | — |
| 409 | domain_taken | Error |
| 503 | no_core·dns_not_configured | Error |
GET /v1/orgs/{orgSlug}/domains/{name}
viewer 이상. 다른 조직의 이름은 404 다.
operationId getDomain
| 응답 | 뜻 | 본문 |
|---|---|---|
| 200 | 도메인 | DomainDetail |
| 403 | — | — |
| 404 | — | — |
POST /v1/orgs/{orgSlug}/domains/{name}/renew
admin 이상. 감사 domain.renew.
operationId renewDomain
본문 application/json · object
| 응답 | 뜻 | 본문 |
|---|---|---|
| 200 | 갱신된 도메인 | Domain |
| 400 | — | — |
| 403 | — | — |
| 404 | — | — |
POST /v1/orgs/{orgSlug}/domains/{name}/auto-renew
admin 이상. 등록기관 쪽 자동 갱신은 그대로 켜져 있다 (§5.4) — 도메인은 하루 늦으면 잃는 자산이라 우리가 먼저 갱신하고 뒤에 청구한다. 화면은 이 사실을 함께 말해야 한다: 안 그러면 고객이 여기서 끄고 "해지했다" 고 믿는다.
operationId setDomainAutoRenew
본문 application/json · object
| 응답 | 뜻 | 본문 |
|---|---|---|
| 200 | 바뀐 도메인 | Domain |
| 400 | — | — |
| 403 | — | — |
| 404 | — | — |
POST /v1/orgs/{orgSlug}/domains/{name}/lock
admin 이상. 감사 domain.lock.
operationId setDomainLock
본문 application/json · object
| 응답 | 뜻 | 본문 |
|---|---|---|
| 200 | 바뀐 도메인 | Domain |
| 400 | — | — |
| 403 | — | — |
| 404 | — | — |
POST /v1/orgs/{orgSlug}/domains/{name}/auth-code
admin 이상. 감사 domain.auth_code — 코드 자체는 감사에 남지
않는다: 코드를 가진 사람은 도메인을 가져갈 수 있고 감사는 지울 수
없다.
나가는 길은 즉시 열려 있다 (§5.5). 막는 것은 ICANN 의 60 일 등록/이전 잠금뿐이고 그것은 안내다.
operationId getDomainAuthCode
| 응답 | 뜻 | 본문 |
|---|---|---|
| 200 | 코드 | object |
| 403 | — | — |
| 404 | — | — |
POST /v1/orgs/{orgSlug}/domains/{name}/sync
member 이상. 만료일·잠금·NS 의 정본은 등록기관이다. 등록기관이
"우리 계정에 없다" 고 답하면 transferred_out 이다 — 이전이 끝났음을
아는 유일한 신호다.
operationId syncDomain
| 응답 | 뜻 | 본문 |
|---|---|---|
| 200 | 맞춰진 도메인 | Domain |
| 403 | — | — |
| 404 | — | — |