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
TypeScript
/**
* 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