class DnsInfo { List upstreamDns; String upstreamDnsFile; List bootstrapDns; bool protectionEnabled; int ratelimit; String blockingMode; bool ednsCsEnabled; bool dnssecEnabled; bool disableIpv6; String upstreamMode; int cacheSize; int cacheTtlMin; int cacheTtlMax; bool cacheOptimistic; bool resolveClients; bool usePrivatePtrResolvers; List localPtrUpstreams; String blockingIpv4; String blockingIpv6; List defaultLocalPtrUpstreams; DnsInfo({ required this.upstreamDns, required this.upstreamDnsFile, required this.bootstrapDns, required this.protectionEnabled, required this.ratelimit, required this.blockingMode, required this.ednsCsEnabled, required this.dnssecEnabled, required this.disableIpv6, required this.upstreamMode, required this.cacheSize, required this.cacheTtlMin, required this.cacheTtlMax, required this.cacheOptimistic, required this.resolveClients, required this.usePrivatePtrResolvers, required this.localPtrUpstreams, required this.blockingIpv4, required this.blockingIpv6, required this.defaultLocalPtrUpstreams, }); factory DnsInfo.fromJson(Map json) => DnsInfo( upstreamDns: json["upstream_dns"] != null ? List.from(json["upstream_dns"].map((x) => x)) : [], upstreamDnsFile: json["upstream_dns_file"], bootstrapDns: List.from(json["bootstrap_dns"].map((x) => x)), protectionEnabled: json["protection_enabled"], ratelimit: json["ratelimit"], blockingMode: json["blocking_mode"], ednsCsEnabled: json["edns_cs_enabled"], dnssecEnabled: json["dnssec_enabled"], disableIpv6: json["disable_ipv6"], upstreamMode: json["upstream_mode"], cacheSize: json["cache_size"], cacheTtlMin: json["cache_ttl_min"], cacheTtlMax: json["cache_ttl_max"], cacheOptimistic: json["cache_optimistic"], resolveClients: json["resolve_clients"], usePrivatePtrResolvers: json["use_private_ptr_resolvers"], localPtrUpstreams: json["local_ptr_upstreams"] != null ? List.from(json["local_ptr_upstreams"].map((x) => x)) : [], blockingIpv4: json["blocking_ipv4"], blockingIpv6: json["blocking_ipv6"], defaultLocalPtrUpstreams: json["default_local_ptr_upstreams"] != null ? List.from(json["default_local_ptr_upstreams"].map((x) => x)) : [], ); Map toJson() => { "upstream_dns": List.from(upstreamDns.map((x) => x)), "upstream_dns_file": upstreamDnsFile, "bootstrap_dns": List.from(bootstrapDns.map((x) => x)), "protection_enabled": protectionEnabled, "ratelimit": ratelimit, "blocking_mode": blockingMode, "edns_cs_enabled": ednsCsEnabled, "dnssec_enabled": dnssecEnabled, "disable_ipv6": disableIpv6, "upstream_mode": upstreamMode, "cache_size": cacheSize, "cache_ttl_min": cacheTtlMin, "cache_ttl_max": cacheTtlMax, "cache_optimistic": cacheOptimistic, "resolve_clients": resolveClients, "use_private_ptr_resolvers": usePrivatePtrResolvers, "local_ptr_upstreams": List.from(localPtrUpstreams.map((x) => x)), "blocking_ipv4": blockingIpv4, "blocking_ipv6": blockingIpv6, "default_local_ptr_upstreams": List.from(defaultLocalPtrUpstreams.map((x) => x)), }; }