runlot
リファレンスAPI

DNS ゾーン

dns カテゴリの API 操作 8 件をカバーします。

メソッドパス説明
GET/v1/orgs/{orgSlug}/dns/zonesDNS ゾーンの一覧(runlot dns zones)
POST/v1/orgs/{orgSlug}/dns/zonesDNS ゾーンを作成します(runlot dns create)
GET/v1/orgs/{orgSlug}/dns/zones/{zone}単一の DNS ゾーンとそのすべてのレコード
DELETE/v1/orgs/{orgSlug}/dns/zones/{zone}DNS ゾーンを削除します(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

この org が Runlot のネームサーバー上で運用している DNS ゾーンの一覧です(docs/domains.md §4)。rrsets は含まれず、単一項目の取得時にのみ提供されます。viewer 以上が利用できます。

operationId listZones

ステータスコード説明レスポンスボディ
200一覧取得ZoneList
403
404
503デプロイの DNS が無効になっている(dns_not_configured)か、cp-public が cp-core のアドレスなしで起動されています(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/jsonobject

ステータスコード説明レスポンスボディ
200作成された、または既に存在していたゾーンZoneDetail
400
403
404
409既に他の org が使用している DNS ゾーン(zone_taken)Error
503デプロイの DNS が無効になっている(dns_not_configured)か、cp-public が cp-core のアドレスなしで起動されています(no_core)。Error

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

viewer 以上が必要です。

operationId getZone

ステータスコード説明レスポンスボディ
200DNS ゾーンと RRsetZoneDetail
403
404
503デプロイの DNS が無効になっている(dns_not_configured)か、cp-public が cp-core のアドレスなしで起動されています(no_core)。Error

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

すべてのレコードと DNS ゾーンファイルをまとめて削除します。委任がまだ Runlot のネームサーバーを指している場合、そのドメインは正しく接続できなくなります。 削除する前にレジストラ側の NS を変更する必要があります。admin 以上です。監査は dns.zone.delete です。

operationId deleteZone

ステータスコード説明レスポンスボディ
204削除済み
403
404
503デプロイの DNS が無効になっている(dns_not_configured)か、cp-public が cp-core のアドレスなしで起動されています(no_core)。Error

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

1 つの rrset(name + type)全体を置き換えます — 単一の値を追加するわけではなく、records がその rrset の新しい内容全体になります。

検証は保存時に行われます(§4.3)。CNAME はゾーン頂点(apex)には置けず、同じ名前で他のタイプと共存できません。また、A/AAAA・MX・SRV・CAA は形式がチェックされます。255 バイトを超える TXT レコードはゾーンファイル内でチャンクに分割されます。managed_by が設定されたレコード(プロジェクト連携・ACME・DNS ゾーンの NS)は 409 managed_rrset を返します。

member 以上が必要です。dns.rrset.set として監査されます。

operationId putRRset

リクエストボディ: application/jsonobject

ステータスコード説明レスポンスボディ
200保存された rrsetRRset
400
403
404
409プロジェクトが管理するレコード(managed_rrset)、または CNAME 共存禁止に該当するレコード(cname_conflictError
503デプロイの DNS が無効になっている(dns_not_configured)か、cp-public が cp-core のアドレスなしで起動されています(no_core)。Error

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

管理対象のレコードは 409 managed_rrset を返します。プロジェクトの連携を解除するには、レコードを削除するのではなく、プロジェクトの Domains 画面から連携を解除してください(§7)。member 以上が必要です。監査イベントは dns.rrset.delete です。

operationId deleteRRset

ステータスコード説明レスポンスボディ
204削除済み
403
404
409アプリが管理する行(managed_rrsetError
503デプロイの DNS が無効になっている(dns_not_configured)か、cp-public が cp-core のアドレスなしで起動されています(no_core)。Error

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

off → signing。署名はネームサーバー(Knot)によって行われ、鍵情報は CP には一切保存されません(§4.5)。この機能を無効にすると、記録された DS も削除されます。古い鍵の DS を親ゾーンに登録したままにすると、ドメインが正しく検証されなくなります。admin 以上が利用できます。

operationId setZoneDNSSEC

リクエストボディ: application/jsonobject

ステータスコード説明レスポンスボディ
200変更されたゾーンZone
403
404
503デプロイの DNS が無効になっている(dns_not_configured)か、cp-public が cp-core のアドレスなしで起動されています(no_core)。Error

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

CP は親ゾーンに問い合わせません。この値は、ネームサーバーが DS レコードを作成したという事実を、オペレーター(または D3 のレジストラ同期)が報告するものであり、状態は signing → ds_pending に移行します。空のリストは「まだ」を意味するため、状態は進みません。admin 以上が必要です。

operationId setZoneDS

リクエストボディ: application/jsonobject

ステータスコード説明レスポンスボディ
200変更されたゾーンZone
400
403
404
409ゾーンの DNSSEC がオフです(dnssec_offError
503デプロイの DNS が無効になっている(dns_not_configured)か、cp-public が cp-core のアドレスなしで起動されています(no_core)。Error

このページの目次