import type { LocalizationMethod } from "./cache.group"; import type { Interface } from "./server"; interface CacheGroupQueueRequestBase { action: "queue" | "dequeue"; } interface CacheGroupQueueRequestByCDNID extends CacheGroupQueueRequestBase { cdn?: never; cdnId: number; } interface CacheGroupQueueRequestByCDNName extends CacheGroupQueueRequestBase { cdn: string; cdnId?: never; } export declare type CacheGroupQueueRequest = CacheGroupQueueRequestByCDNID | CacheGroupQueueRequestByCDNName; export interface CacheGroupQueueResponse { action: "queue" | "dequeue"; cachegroupName: string; cachegroupID: number; cdn: string; serverNames: Array; } export interface CDNQueueRequest { action: "queue" | "dequeue"; } export interface CDNQueueResponse { action: "queue" | "dequeue"; cdnId: number; } export interface ServerQueueRequest { action: "queue" | "dequeue"; } export interface ServerQueueResponse { action: "queue" | "dequeue"; serverId: number; } export declare type TopologyQueueRequest = CacheGroupQueueRequestByCDNID; export interface TopologyQueueResponse extends TopologyQueueRequest { topology: string; } interface ContentServerBase { cacheGroup: string; capabilities: Array; fqdn: string; hashCount: number; hashId: string; httpsPort: number | null; interfaceName: string; ip: string; ip6: string; locationId: string; port: number; profile: string; routingDisabled: 0 | 1; status: string; } interface EdgeContentServer extends ContentServerBase { deliveryServices: { [xmlID: string]: Array; }; type: "EDGE"; } interface MidContentServer extends ContentServerBase { type: "MID"; } export declare type SnapshotContentServer = EdgeContentServer | MidContentServer; export interface SnapshotContentRouter { "api.port": string; "secure.api.port": string; fqdn: string; httpsPort: number | null; ip: string; ip6: string; location: string; port: number; profile: string; status: string; } export interface SnapshotDeliveryService { anonymousBlockingEnabled: "true" | "false"; consistentHashQueryParameters: Array; consistentHashRegex?: string; coverageZoneOnly: "true" | "false"; deepCachingType: "ALWAYS" | "NEVER"; dispersion: { limit: number; shuffled: "true" | "false"; }; domains: Array; ecsEnabled: "true" | "false"; geolocationProvider: string; ip6RoutingEnabled: "true" | "false"; matchsets: Array<{ matchList: Array<{ "match-type": string; regex: string; }>; protocol: string; }>; missLocation: { lat: number; long: number; }; protocol: { acceptHttps: "true" | "false"; redirectToHttps: "true" | "false"; }; regionalGeoBlocking: "true" | "false"; requiredCapabilities: Array; routingName: string; soa: { admin: string; expire: string; minimum: string; refresh: string; retry: string; }; sslEnabled: "true" | "false"; topology?: string; ttls: { A: string; AAAA: string; NS: string; SOA: string; }; } export interface SnapshotEdgeLocation { backupLocations: { fallbackToClosest: "true" | "false"; list?: Array; }; latitude: number; longitude: number; localizationMethods: Array; } export interface SnapshotMonitor { fqdn: string; httpsPort: number | null; ip: string; ip6: string; location: string; port: number; profile: string; status: string; } export interface SnapshotStatsSection { CDN_name?: string; date?: Date; tm_host?: string; tm_path?: string; tm_user?: string; tm_version?: string; } export interface SnapshotTrafficRouterLocation { backupLocations: { fallbackToClosest: "true" | "false"; list?: Array; }; latitude: number; localizationMethods: Array; longitude: number; } export interface SnapshotTopology { nodes: Array; } export interface Snapshot { config?: Record; contentRouters?: { [routerHostName: string]: SnapshotContentRouter; }; contentServers?: { [cacheServerHostName: string]: SnapshotContentServer; }; deliveryServices?: { [xmlID: string]: SnapshotDeliveryService; }; edgeLocations?: { [name: string]: SnapshotEdgeLocation; }; monitors?: { [monitorHostName: string]: SnapshotMonitor; }; stats?: SnapshotStatsSection; topologies?: { [name: string]: SnapshotTopology; }; trafficRouterLocations?: { [name: string]: SnapshotTrafficRouterLocation; }; } export interface MonitoringConfig { cacheGroups: Array<{ coordinates: { latitude: number; longitude: number; }; name: string; }>; config: Record; deliveryServices: Array<{ hostRegexes: Array; status: string; topology: string | null; totalKbpsThreshold: number; totalTpsThreshold: number; type: string; xmlId: string; }>; profiles: Array<{ name: string; parameters: Record; type: string; }>; topologies?: { [name: string]: { nodes: Array; }; }; trafficMonitors: Array<{ cachegroup: string; fqdn: string; hostname: string; ip: string; ip6: string; port: number; profile: string; status: string; }>; trafficServers: Array<{ cachegroup: string; fqdn: string; hashid: string; hostname: string; interfaces: Array; port: number; profile: string; status: string; type: string; }>; } export {};