UNPKG

dnsweeper

Version:

Advanced CLI tool for DNS record risk analysis and cleanup. Features CSV import for Cloudflare/Route53, automated risk assessment, and parallel DNS validation.

94 lines 2.7 kB
/** * Cloudflare API クライアント */ import type { DNSRecordType, ICSVRecord } from '../../types/index.js'; export interface CloudflareConfig { apiToken?: string; email?: string; apiKey?: string; } export interface CloudflareZone { id: string; name: string; status: string; paused: boolean; type: string; development_mode: number; name_servers: string[]; original_name_servers: string[]; original_registrar: string; original_dnshost: string; created_on: string; modified_on: string; activated_on: string; } export interface CloudflareDNSRecord { id?: string; zone_id?: string; zone_name?: string; name: string; type: DNSRecordType; content: string; proxiable?: boolean; proxied?: boolean; ttl?: number; priority?: number; locked?: boolean; created_on?: string; modified_on?: string; meta?: { auto_added?: boolean; source?: string; }; } export interface CloudflareResponse<T> { success: boolean; errors: Array<{ code: number; message: string; }>; messages: string[]; result: T; result_info?: { page: number; per_page: number; count: number; total_count: number; total_pages: number; }; } export declare class CloudflareClient { private readonly baseUrl; private readonly headers; constructor(config: CloudflareConfig); private request; listZones(): Promise<CloudflareZone[]>; getZone(zoneId: string): Promise<CloudflareZone>; listDNSRecords(zoneId: string): Promise<CloudflareDNSRecord[]>; getDNSRecord(zoneId: string, recordId: string): Promise<CloudflareDNSRecord>; createDNSRecord(zoneId: string, record: CloudflareDNSRecord): Promise<CloudflareDNSRecord>; updateDNSRecord(zoneId: string, recordId: string, record: CloudflareDNSRecord): Promise<CloudflareDNSRecord>; deleteDNSRecord(zoneId: string, recordId: string): Promise<{ id: string; }>; /** * CSVレコードをCloudflare DNS形式に変換 */ convertCSVToCloudflareRecords(csvRecords: ICSVRecord[]): CloudflareDNSRecord[]; /** * Cloudflare DNSレコードをCSV形式に変換 */ convertCloudflareToCSVRecords(cfRecords: CloudflareDNSRecord[]): ICSVRecord[]; /** * ゾーンファイルのエクスポート */ exportZone(zoneId: string): Promise<string>; /** * ゾーンファイルのインポート */ importZone(zoneId: string, zoneFile: string): Promise<{ recs_added: number; total_records_parsed: number; }>; } //# sourceMappingURL=cloudflare.d.ts.map