import * as plugins from '../plugins.js'; import * as authInterfaces from '../data/auth.js'; import type { IDnsAuthorityDrift, IDnsAuthoritySettings, IDnsDelegationProbe } from '../data/dns-authority.js'; export interface IReq_GetDnsAuthority extends plugins.typedrequestInterfaces.implementsTR { method: 'getDnsAuthority'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; }; response: { settings: IDnsAuthoritySettings; }; } /** * Probe a zone's public delegation without changing anything. Lets an operator * see the evidence before claiming authority. */ export interface IReq_ProbeDnsAuthorityZone extends plugins.typedrequestInterfaces.implementsTR { method: 'probeDnsAuthorityZone'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; zone: string; }; response: { probe: IDnsDelegationProbe; }; } /** * Claim authority over a zone. Succeeds only when the zone's public delegation * names our nameservers; the claim is then persisted and reconciled in-process, * with no restart. */ export interface IReq_VerifyDnsAuthorityZone extends plugins.typedrequestInterfaces.implementsTR { method: 'verifyDnsAuthorityZone'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; zone: string; }; response: { success: boolean; message?: string; probe?: IDnsDelegationProbe; settings?: IDnsAuthoritySettings; }; } /** * Drop a previously verified zone. Every zone in the authority set is revocable * through this call: there is no deployment-declared floor left that would need * a redeploy to withdraw. */ export interface IReq_RevokeDnsAuthorityZone extends plugins.typedrequestInterfaces.implementsTR { method: 'revokeDnsAuthorityZone'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; zone: string; }; response: { success: boolean; message?: string; settings?: IDnsAuthoritySettings; }; } /** * Compare declared authority against observed delegation in both directions. * This is the check whose absence let one zone sit declared while four live * zones were delegated to us and unclaimed. */ export interface IReq_GetDnsAuthorityDrift extends plugins.typedrequestInterfaces.implementsTR { method: 'getDnsAuthorityDrift'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; }; response: { drift: IDnsAuthorityDrift[]; }; }