import * as S from "@distilled.cloud/core/schema"; import * as API from "@distilled.cloud/core/api"; import { type CloudflareOpError, type CloudflareOpContext } from "../protocol.ts"; import { ResultInfo } from "../pagination.ts"; export type { CloudflareOpError, CloudflareOpContext }; declare const DnsFirewallNotEntitled_base: S.Class, import("effect/Cause").YieldableError>; export declare class DnsFirewallNotEntitled extends /*@__PURE__*/ DnsFirewallNotEntitled_base { } declare const DnsFirewallNotFound_base: S.Class, import("effect/Cause").YieldableError>; export declare class DnsFirewallNotFound extends /*@__PURE__*/ DnsFirewallNotFound_base { } declare const Forbidden_base: S.Class, import("effect/Cause").YieldableError>; export declare class Forbidden extends /*@__PURE__*/ Forbidden_base { } export type CreateRequestUpstreamIpsList = Array; export declare const CreateRequestUpstreamIpsList: S.Schema; export interface CreateRequestAttackMitigation { /** When enabled, automatically mitigate random-prefix attacks to protect upstream DNS servers */ enabled?: boolean; /** Only mitigate attacks when upstream servers seem unhealthy */ onlyWhenUpstreamUnhealthy?: boolean; } export declare const CreateRequestAttackMitigation: S.Schema; export interface CreateDnsFirewallRequest { /** Identifier. */ accountId: string; /** DNS Firewall cluster name */ name: string; upstreamIps: CreateRequestUpstreamIpsList; /** Attack mitigation settings */ attackMitigation?: CreateRequestAttackMitigation; /** Whether to refuse to answer queries for the ANY type */ deprecateAnyRequests?: boolean; /** Number of IPv4 addresses to assign to the DNS Firewall cluster. Only used during cluster creation and cannot be changed later. */ dnsFirewallIpCount?: number; /** Whether to forward client IP (resolver) subnet if no EDNS Client Subnet is sent */ ecsFallback?: boolean; /** By default, Cloudflare attempts to cache responses for as long as */ maximumCacheTtl?: number; /** By default, Cloudflare attempts to cache responses for as long as */ minimumCacheTtl?: number; /** This setting controls how long DNS Firewall should cache negative */ negativeCacheTtl?: number | null; /** Maximum number of DNS queries per second that will be forwarded to your upstream nameservers. The limit is enforced per server, where each server receives a fraction of the configured value. The actual aggregate rate for a data center may vary depending on how many servers are present. Responses served from cache do not count toward this limit. Set to null to disable rate limiting. */ ratelimit?: number | null; /** Number of retries for fetching DNS responses from upstream nameservers (not counting the initial attempt) */ retries?: number; } export declare const CreateDnsFirewallRequest: S.Schema; export type CreateResponseDnsFirewallIpsList = Array; export declare const CreateResponseDnsFirewallIpsList: S.Schema; export type CreateResponseUpstreamIpsList = Array; export declare const CreateResponseUpstreamIpsList: S.Schema; export interface CreateResponseAttackMitigation { /** When enabled, automatically mitigate random-prefix attacks to protect upstream DNS servers */ enabled?: boolean | null; /** Only mitigate attacks when upstream servers seem unhealthy */ onlyWhenUpstreamUnhealthy?: boolean | null; } export declare const CreateResponseAttackMitigation: S.Schema; /** Unwrapped `result` payload of the Cloudflare v4 response envelope. */ export interface CreateDnsFirewallResponse { /** Identifier. */ id: string; /** Whether to refuse to answer queries for the ANY type */ deprecateAnyRequests: boolean; dnsFirewallIps: CreateResponseDnsFirewallIpsList; /** Whether to forward client IP (resolver) subnet if no EDNS Client Subnet is sent */ ecsFallback: boolean; /** By default, Cloudflare attempts to cache responses for as long as */ maximumCacheTtl: number; /** By default, Cloudflare attempts to cache responses for as long as */ minimumCacheTtl: number; /** Last modification of DNS Firewall cluster */ modifiedOn: string; /** DNS Firewall cluster name */ name: string; /** This setting controls how long DNS Firewall should cache negative */ negativeCacheTtl: number; /** Maximum number of DNS queries per second that will be forwarded to your upstream nameservers. The limit is enforced per server, where each server receives a fraction of the configured value. The actual aggregate rate for a data center may vary depending on how many servers are present. Responses served from cache do not count toward this limit. Set to null to disable rate limiting. */ ratelimit: number; /** Number of retries for fetching DNS responses from upstream nameservers (not counting the initial attempt) */ retries: number; upstreamIps: CreateResponseUpstreamIpsList; /** Attack mitigation settings */ attackMitigation?: CreateResponseAttackMitigation | null; } export declare const CreateDnsFirewallResponse: S.Schema; export interface DeleteDnsFirewallRequest { /** Identifier. */ accountId: string; /** Identifier. */ dnsFirewallId: string; } export declare const DeleteDnsFirewallRequest: S.Schema; /** Unwrapped `result` payload of the Cloudflare v4 response envelope. */ export interface DeleteDnsFirewallResponse { /** Identifier. */ id?: string | null; } export declare const DeleteDnsFirewallResponse: S.Schema; export interface GetAnalyticReportRequest { /** Identifier. */ accountId: string; /** Identifier. */ dnsFirewallId: string; /** A comma-separated list of dimensions to group results by. */ dimensions?: string; /** Segmentation filter in 'attribute operator value' format. */ filters?: string; /** Limit number of returned metrics. */ limit?: number; /** A comma-separated list of metrics to query. */ metrics?: string; /** Start date and time of requesting data period in ISO 8601 format. */ since?: string; /** A comma-separated list of dimensions to sort by, where each dimension may be prefixed by - (descending) or + (ascending). */ sort?: string; /** End date and time of requesting data period in ISO 8601 format. */ until?: string; } export declare const GetAnalyticReportRequest: S.Schema; export type AnalyticsReportsGetResponseDataItemDimensionsList = Array; export declare const AnalyticsReportsGetResponseDataItemDimensionsList: S.Schema; export type AnalyticsReportsGetResponseDataItemMetricsList = Array; export declare const AnalyticsReportsGetResponseDataItemMetricsList: S.Schema; export interface AnalyticsReportsGetResponseDataItem { /** Array of dimension values, representing the combination of dimension values corresponding to this row. */ dimensions: AnalyticsReportsGetResponseDataItemDimensionsList; /** Array with one item per requested metric. Each item is a single value. */ metrics: AnalyticsReportsGetResponseDataItemMetricsList; } export declare const AnalyticsReportsGetResponseDataItem: S.Schema; export type AnalyticsReportsGetResponseDataList = Array; export declare const AnalyticsReportsGetResponseDataList: S.Schema; export type AnalyticsReportsGetResponseQueryDimensionsList = Array; export declare const AnalyticsReportsGetResponseQueryDimensionsList: S.Schema; export type AnalyticsReportsGetResponseQueryMetricsList = Array; export declare const AnalyticsReportsGetResponseQueryMetricsList: S.Schema; export type AnalyticsReportsGetResponseQuerySortList = Array; export declare const AnalyticsReportsGetResponseQuerySortList: S.Schema; export interface AnalyticsReportsGetResponseQuery { /** Array of dimension names. */ dimensions: AnalyticsReportsGetResponseQueryDimensionsList; /** Limit number of returned metrics. */ limit: number; /** Array of metric names. */ metrics: AnalyticsReportsGetResponseQueryMetricsList; /** Start date and time of requesting data period in ISO 8601 format. */ since: string; /** End date and time of requesting data period in ISO 8601 format. */ until: string; /** Segmentation filter in 'attribute operator value' format. */ filters?: string | null; /** Array of dimensions to sort by, where each dimension may be prefixed by - (descending) or + (ascending). */ sort?: AnalyticsReportsGetResponseQuerySortList | null; } export declare const AnalyticsReportsGetResponseQuery: S.Schema; /** Unwrapped `result` payload of the Cloudflare v4 response envelope. */ export interface GetAnalyticReportResponse { /** Array with one row per combination of dimension values. */ data: AnalyticsReportsGetResponseDataList; /** Number of seconds between current time and last processed event, in another words how many seconds of data could be missing. */ dataLag: number; /** Maximum results for each metric (object mapping metric names to values). Currently always an empty object. */ max: unknown; /** Minimum results for each metric (object mapping metric names to values). Currently always an empty object. */ min: unknown; query: AnalyticsReportsGetResponseQuery; /** Total number of rows in the result. */ rows: number; /** Total results for metrics across all data (object mapping metric names to values). */ totals: unknown; } export declare const GetAnalyticReportResponse: S.Schema; export type AnalyticsReportsBytimesGetRequestTimeDelta = "all" | "auto" | "year" | "quarter" | "month" | "week" | "day" | "hour" | "dekaminute" | "minute"; export declare const AnalyticsReportsBytimesGetRequestTimeDelta: any; export interface GetAnalyticReportBytimeRequest { /** Identifier. */ accountId: string; /** Identifier. */ dnsFirewallId: string; /** A comma-separated list of dimensions to group results by. */ dimensions?: string; /** Segmentation filter in 'attribute operator value' format. */ filters?: string; /** Limit number of returned metrics. */ limit?: number; /** A comma-separated list of metrics to query. */ metrics?: string; /** Start date and time of requesting data period in ISO 8601 format. */ since?: string; /** A comma-separated list of dimensions to sort by, where each dimension may be prefixed by - (descending) or + (ascending). */ sort?: string; /** Unit of time to group data by. */ timeDelta?: AnalyticsReportsBytimesGetRequestTimeDelta | (string & {}); /** End date and time of requesting data period in ISO 8601 format. */ until?: string; } export declare const GetAnalyticReportBytimeRequest: S.Schema; export type AnalyticsReportsBytimesGetResponseDataItemDimensionsList = Array; export declare const AnalyticsReportsBytimesGetResponseDataItemDimensionsList: S.Schema; export type AnalyticsReportsBytimesGetResponseDataItemMetricsItemList = Array; export declare const AnalyticsReportsBytimesGetResponseDataItemMetricsItemList: S.Schema; export type AnalyticsReportsBytimesGetResponseDataItemMetricsList = Array; export declare const AnalyticsReportsBytimesGetResponseDataItemMetricsList: S.Schema; export interface AnalyticsReportsBytimesGetResponseDataItem { /** Array of dimension values, representing the combination of dimension values corresponding to this row. */ dimensions: AnalyticsReportsBytimesGetResponseDataItemDimensionsList; /** Array with one item per requested metric. Each item is an array of values, broken down by time interval. */ metrics: AnalyticsReportsBytimesGetResponseDataItemMetricsList; } export declare const AnalyticsReportsBytimesGetResponseDataItem: S.Schema; export type AnalyticsReportsBytimesGetResponseDataList = Array; export declare const AnalyticsReportsBytimesGetResponseDataList: S.Schema; export type AnalyticsReportsBytimesGetResponseQueryDimensionsList = Array; export declare const AnalyticsReportsBytimesGetResponseQueryDimensionsList: S.Schema; export type AnalyticsReportsBytimesGetResponseQueryMetricsList = Array; export declare const AnalyticsReportsBytimesGetResponseQueryMetricsList: S.Schema; export type AnalyticsReportsBytimesGetResponseQueryTimeDelta = "all" | "auto" | "year" | "quarter" | "month" | "week" | "day" | "hour" | "dekaminute" | "minute"; export declare const AnalyticsReportsBytimesGetResponseQueryTimeDelta: any; export type AnalyticsReportsBytimesGetResponseQuerySortList = Array; export declare const AnalyticsReportsBytimesGetResponseQuerySortList: S.Schema; export interface AnalyticsReportsBytimesGetResponseQuery { /** Array of dimension names. */ dimensions: AnalyticsReportsBytimesGetResponseQueryDimensionsList; /** Limit number of returned metrics. */ limit: number; /** Array of metric names. */ metrics: AnalyticsReportsBytimesGetResponseQueryMetricsList; /** Start date and time of requesting data period in ISO 8601 format. */ since: string; /** Unit of time to group data by. */ timeDelta: AnalyticsReportsBytimesGetResponseQueryTimeDelta; /** End date and time of requesting data period in ISO 8601 format. */ until: string; /** Segmentation filter in 'attribute operator value' format. */ filters?: string | null; /** Array of dimensions to sort by, where each dimension may be prefixed by - (descending) or + (ascending). */ sort?: AnalyticsReportsBytimesGetResponseQuerySortList | null; } export declare const AnalyticsReportsBytimesGetResponseQuery: S.Schema; export type AnalyticsReportsBytimesGetResponseTimeIntervalsItemList = Array; export declare const AnalyticsReportsBytimesGetResponseTimeIntervalsItemList: S.Schema; export type AnalyticsReportsBytimesGetResponseTimeIntervalsList = Array; export declare const AnalyticsReportsBytimesGetResponseTimeIntervalsList: S.Schema; /** Unwrapped `result` payload of the Cloudflare v4 response envelope. */ export interface GetAnalyticReportBytimeResponse { /** Array with one row per combination of dimension values. */ data: AnalyticsReportsBytimesGetResponseDataList; /** Number of seconds between current time and last processed event, in another words how many seconds of data could be missing. */ dataLag: number; /** Maximum results for each metric (object mapping metric names to values). Currently always an empty object. */ max: unknown; /** Minimum results for each metric (object mapping metric names to values). Currently always an empty object. */ min: unknown; query: AnalyticsReportsBytimesGetResponseQuery; /** Total number of rows in the result. */ rows: number; /** Array of time intervals in the response data. Each interval is represented as an array containing two values: the start time, and the end time. */ timeIntervals: AnalyticsReportsBytimesGetResponseTimeIntervalsList; /** Total results for metrics across all data (object mapping metric names to values). */ totals: unknown; } export declare const GetAnalyticReportBytimeResponse: S.Schema; export interface GetDnsFirewallRequest { /** Identifier. */ accountId: string; /** Identifier. */ dnsFirewallId: string; } export declare const GetDnsFirewallRequest: S.Schema; export type GetResponseDnsFirewallIpsList = Array; export declare const GetResponseDnsFirewallIpsList: S.Schema; export type GetResponseUpstreamIpsList = Array; export declare const GetResponseUpstreamIpsList: S.Schema; export type GetResponseAttackMitigation = CreateResponseAttackMitigation; export declare const GetResponseAttackMitigation: S.Schema; /** Unwrapped `result` payload of the Cloudflare v4 response envelope. */ export interface GetDnsFirewallResponse { /** Identifier. */ id: string; /** Whether to refuse to answer queries for the ANY type */ deprecateAnyRequests: boolean; dnsFirewallIps: GetResponseDnsFirewallIpsList; /** Whether to forward client IP (resolver) subnet if no EDNS Client Subnet is sent */ ecsFallback: boolean; /** By default, Cloudflare attempts to cache responses for as long as */ maximumCacheTtl: number; /** By default, Cloudflare attempts to cache responses for as long as */ minimumCacheTtl: number; /** Last modification of DNS Firewall cluster */ modifiedOn: string; /** DNS Firewall cluster name */ name: string; /** This setting controls how long DNS Firewall should cache negative */ negativeCacheTtl: number; /** Maximum number of DNS queries per second that will be forwarded to your upstream nameservers. The limit is enforced per server, where each server receives a fraction of the configured value. The actual aggregate rate for a data center may vary depending on how many servers are present. Responses served from cache do not count toward this limit. Set to null to disable rate limiting. */ ratelimit: number; /** Number of retries for fetching DNS responses from upstream nameservers (not counting the initial attempt) */ retries: number; upstreamIps: GetResponseUpstreamIpsList; /** Attack mitigation settings */ attackMitigation?: CreateResponseAttackMitigation | null; } export declare const GetDnsFirewallResponse: S.Schema; export interface GetReverseDnRequest { /** Identifier. */ accountId: string; /** Identifier. */ dnsFirewallId: string; } export declare const GetReverseDnRequest: S.Schema; export type ReverseDnsGetResponsePtrMap = { [key: string]: string | undefined; }; export declare const ReverseDnsGetResponsePtrMap: S.Schema; /** Unwrapped `result` payload of the Cloudflare v4 response envelope. */ export interface GetReverseDnResponse { /** Map of cluster IP addresses to PTR record contents */ ptr: ReverseDnsGetResponsePtrMap; } export declare const GetReverseDnResponse: S.Schema; export interface ListDnsFirewallsRequest { /** Identifier. */ accountId: string; /** Page number of paginated results */ page?: number; /** Number of clusters per page */ perPage?: number; } export declare const ListDnsFirewallsRequest: S.Schema; export type ListResultItemDnsFirewallIpsList = Array; export declare const ListResultItemDnsFirewallIpsList: S.Schema; export type ListResultItemUpstreamIpsList = Array; export declare const ListResultItemUpstreamIpsList: S.Schema; export type ListResultItemAttackMitigation = CreateResponseAttackMitigation; export declare const ListResultItemAttackMitigation: S.Schema; export interface ListResultItem { /** Identifier. */ id: string; /** Whether to refuse to answer queries for the ANY type */ deprecateAnyRequests: boolean; dnsFirewallIps: ListResultItemDnsFirewallIpsList; /** Whether to forward client IP (resolver) subnet if no EDNS Client Subnet is sent */ ecsFallback: boolean; /** By default, Cloudflare attempts to cache responses for as long as */ maximumCacheTtl: number; /** By default, Cloudflare attempts to cache responses for as long as */ minimumCacheTtl: number; /** Last modification of DNS Firewall cluster */ modifiedOn: string; /** DNS Firewall cluster name */ name: string; /** This setting controls how long DNS Firewall should cache negative */ negativeCacheTtl: number; /** Maximum number of DNS queries per second that will be forwarded to your upstream nameservers. The limit is enforced per server, where each server receives a fraction of the configured value. The actual aggregate rate for a data center may vary depending on how many servers are present. Responses served from cache do not count toward this limit. Set to null to disable rate limiting. */ ratelimit: number; /** Number of retries for fetching DNS responses from upstream nameservers (not counting the initial attempt) */ retries: number; upstreamIps: ListResultItemUpstreamIpsList; /** Attack mitigation settings */ attackMitigation?: CreateResponseAttackMitigation | null; } export declare const ListResultItem: S.Schema; export type ListResultList = Array; export declare const ListResultList: S.Schema; export interface ListDnsFirewallsResponse { /** The unwrapped `result` payload of the v4 response envelope. */ result: ListResultList; /** Pagination info from the envelope's `result_info`. */ resultInfo?: ResultInfo | null; } export declare const ListDnsFirewallsResponse: S.Schema; export type EditRequestAttackMitigation = CreateRequestAttackMitigation; export declare const EditRequestAttackMitigation: S.Schema; export type EditRequestUpstreamIpsList = Array; export declare const EditRequestUpstreamIpsList: S.Schema; export interface PatchDnsFirewallRequest { /** Identifier. */ accountId: string; /** Identifier. */ dnsFirewallId: string; /** Attack mitigation settings */ attackMitigation?: CreateRequestAttackMitigation; /** Whether to refuse to answer queries for the ANY type */ deprecateAnyRequests?: boolean; /** Whether to forward client IP (resolver) subnet if no EDNS Client Subnet is sent */ ecsFallback?: boolean; /** By default, Cloudflare attempts to cache responses for as long as */ maximumCacheTtl?: number; /** By default, Cloudflare attempts to cache responses for as long as */ minimumCacheTtl?: number; /** DNS Firewall cluster name */ name?: string; /** This setting controls how long DNS Firewall should cache negative */ negativeCacheTtl?: number | null; /** Maximum number of DNS queries per second that will be forwarded to your upstream nameservers. The limit is enforced per server, where each server receives a fraction of the configured value. The actual aggregate rate for a data center may vary depending on how many servers are present. Responses served from cache do not count toward this limit. Set to null to disable rate limiting. */ ratelimit?: number | null; /** Number of retries for fetching DNS responses from upstream nameservers (not counting the initial attempt) */ retries?: number; upstreamIps?: EditRequestUpstreamIpsList; } export declare const PatchDnsFirewallRequest: S.Schema; export type EditResponseDnsFirewallIpsList = Array; export declare const EditResponseDnsFirewallIpsList: S.Schema; export type EditResponseUpstreamIpsList = Array; export declare const EditResponseUpstreamIpsList: S.Schema; export type EditResponseAttackMitigation = CreateResponseAttackMitigation; export declare const EditResponseAttackMitigation: S.Schema; /** Unwrapped `result` payload of the Cloudflare v4 response envelope. */ export interface PatchDnsFirewallResponse { /** Identifier. */ id: string; /** Whether to refuse to answer queries for the ANY type */ deprecateAnyRequests: boolean; dnsFirewallIps: EditResponseDnsFirewallIpsList; /** Whether to forward client IP (resolver) subnet if no EDNS Client Subnet is sent */ ecsFallback: boolean; /** By default, Cloudflare attempts to cache responses for as long as */ maximumCacheTtl: number; /** By default, Cloudflare attempts to cache responses for as long as */ minimumCacheTtl: number; /** Last modification of DNS Firewall cluster */ modifiedOn: string; /** DNS Firewall cluster name */ name: string; /** This setting controls how long DNS Firewall should cache negative */ negativeCacheTtl: number; /** Maximum number of DNS queries per second that will be forwarded to your upstream nameservers. The limit is enforced per server, where each server receives a fraction of the configured value. The actual aggregate rate for a data center may vary depending on how many servers are present. Responses served from cache do not count toward this limit. Set to null to disable rate limiting. */ ratelimit: number; /** Number of retries for fetching DNS responses from upstream nameservers (not counting the initial attempt) */ retries: number; upstreamIps: EditResponseUpstreamIpsList; /** Attack mitigation settings */ attackMitigation?: CreateResponseAttackMitigation | null; } export declare const PatchDnsFirewallResponse: S.Schema; export type ReverseDnsEditRequestPtrMap = { [key: string]: string | undefined; }; export declare const ReverseDnsEditRequestPtrMap: S.Schema; export interface PatchReverseDnRequest { /** Identifier. */ accountId: string; /** Identifier. */ dnsFirewallId: string; /** Map of cluster IP addresses to PTR record contents */ ptr?: ReverseDnsEditRequestPtrMap; } export declare const PatchReverseDnRequest: S.Schema; export type ReverseDnsEditResponsePtrMap = { [key: string]: string | undefined; }; export declare const ReverseDnsEditResponsePtrMap: S.Schema; /** Unwrapped `result` payload of the Cloudflare v4 response envelope. */ export interface PatchReverseDnResponse { /** Map of cluster IP addresses to PTR record contents */ ptr: ReverseDnsEditResponsePtrMap; } export declare const PatchReverseDnResponse: S.Schema; export type CreateDnsFirewallError = DnsFirewallNotEntitled | Forbidden | CloudflareOpError; /** Create a DNS Firewall cluster */ export declare const createDnsFirewall: API.OperationMethod; export type DeleteDnsFirewallError = DnsFirewallNotFound | Forbidden | CloudflareOpError; /** Delete a DNS Firewall cluster */ export declare const deleteDnsFirewall: API.OperationMethod; export type GetAnalyticReportError = CloudflareOpError; /** Retrieves a list of summarised aggregate metrics over a given time period. See [Analytics API properties](https://developers.cloudflare.com/dns/reference/analytics-api-properties/) for detailed information about the available query parameters. */ export declare const getAnalyticReport: API.OperationMethod; export type GetAnalyticReportBytimeError = CloudflareOpError; /** Retrieves a list of aggregate metrics grouped by time interval. See [Analytics API properties](https://developers.cloudflare.com/dns/reference/analytics-api-properties/) for detailed information about the available query parameters. */ export declare const getAnalyticReportBytime: API.OperationMethod; export type GetDnsFirewallError = DnsFirewallNotFound | Forbidden | CloudflareOpError; /** Show a single DNS Firewall cluster for an account */ export declare const getDnsFirewall: API.OperationMethod; export type GetReverseDnError = DnsFirewallNotFound | Forbidden | CloudflareOpError; /** Show reverse DNS configuration (PTR records) for a DNS Firewall cluster */ export declare const getReverseDn: API.OperationMethod; export type ListDnsFirewallsError = Forbidden | CloudflareOpError; /** List DNS Firewall clusters for an account */ export declare const listDnsFirewalls: API.PaginatedOperationMethod; export type PatchDnsFirewallError = DnsFirewallNotFound | Forbidden | CloudflareOpError; /** Modify the configuration of a DNS Firewall cluster */ export declare const patchDnsFirewall: API.OperationMethod; export type PatchReverseDnError = DnsFirewallNotFound | Forbidden | CloudflareOpError; /** Update reverse DNS configuration (PTR records) for a DNS Firewall cluster */ export declare const patchReverseDn: API.OperationMethod; //# sourceMappingURL=dns_firewall.d.ts.map