/** * TypeScript type definitions for Sophos Central API responses. */ export interface SophosTokenResponse { access_token: string; token_type: string; expires_in: number; refresh_token?: string; errorCode?: string; message?: string; } export type SophosIdType = "partner" | "organization" | "tenant"; export interface SophosWhoamiResponse { id: string; idType: SophosIdType; apiHosts: { global: string; dataRegion?: string; }; } export interface SophosTenant { id: string; name: string; dataGeography: string; dataRegion: string; billingType: string; apiHost: string; status?: string; partner?: { id: string; }; organization?: { id: string; }; } export interface SophosTenantPage { pages: { current: number; size: number; total: number; maxSize: number; }; items: SophosTenant[]; } export interface SophosAlert { id: string; allowedActions: string[]; category: string; description: string; groupKey: string; managedAgent?: { id: string; type: string; }; person?: { id: string; }; product: string; raisedAt: string; severity: string; tenant: { id: string; name?: string; }; type: string; } export interface SophosAlertPage { pages: { current?: number; size: number; total?: number; maxSize: number; items?: number; fromKey?: string; nextKey?: string; }; items: SophosAlert[]; } export interface SophosEndpoint { id: string; type: string; tenant: { id: string; }; hostname: string; health: { overall: string; threats: { status: string; }; services: { status: string; serviceDetails?: Array<{ name: string; status: string; }>; }; }; os: { isServer: boolean; platform: string; name: string; majorVersion: number; minorVersion: number; build?: number; }; ipv4Addresses?: string[]; ipv6Addresses?: string[]; macAddresses?: string[]; associatedPerson?: { name?: string; viaLogin?: string; id?: string; }; tamperProtectionEnabled: boolean; assignedProducts?: Array<{ code: string; version: string; status: string; }>; lastSeenAt?: string; groupId?: string; groupName?: string; lockdown?: { status: string; }; isolation?: { status: string; }; } export interface SophosEndpointPage { pages: { fromKey?: string; nextKey?: string; size: number; maxSize: number; total?: number; current?: number; items?: number; }; items: SophosEndpoint[]; } export interface SophosHealthCheck { endpoint: { protection: { computer: { percentage: number; status: string; }; server?: { percentage: number; status: string; }; }; policy?: Record; exclusions?: Record; tamperProtection?: Record; }; } export interface SophosCase { id: string; type: string; name: string; severity: string; status: string; assignee?: string; overview?: string; tenant: { id: string; }; managedBy?: string; createdAt: string; createdBy?: { id?: string; name?: string; email?: string; }; updatedAt?: string; detectionCount?: number; initialDetection?: { id: string; }; } export interface SophosCasePage { pages: { current: number; size: number; total: number; maxSize: number; }; items: SophosCase[]; } export interface SophosCaseDetection { id: string; attackType?: string; detectionDescription?: string; detectionRule?: string; sensorGeneratedAt?: string; severity?: number; device?: { id: string; type: string; entity?: string; }; sensor?: { id: string; type: string; source?: string; }; } export interface SophosCaseDetectionPage { pages: { current?: number; size: number; total?: number; maxSize: number; items?: number; }; items: SophosCaseDetection[]; } export interface SophosCaseMitreSummary { tactics: Array<{ id: string; name: string; techniques: Array<{ id: string; name: string; count: number; }>; }>; } export interface SophosQueryRun { id: string; createdAt: string; result: "notAvailable" | "succeeded" | "failed"; status: "pending" | "finished"; finishedAt?: string; expiresAt?: string; } export interface SophosDetection { id: string; attackType?: string; caseDescription?: string; detectionDescription?: string; detectionRule?: string; sensorGeneratedAt?: string; severity?: number; sensor?: { id: string; type: string; source?: string; version?: string; }; device?: { id: string; type: string; entity?: string; }; detectionAttack?: Record; } export interface SophosDetectionsResultPage { pages: { current?: number; size: number; total?: number; maxSize: number; items?: number; }; items: SophosDetection[]; } export interface SophosSiemEvent { id: string; type: string; name: string; severity?: string; when: string; created_at?: string; source?: string; user_id?: string; location?: string; data?: Record; } export interface SophosSiemResponse { items: SophosSiemEvent[]; next_cursor: string; has_more: boolean; } export interface SophosXdrQueryResultsPage { items: Record[]; metadata?: { columns: Array<{ name: string; type: string; }>; }; pages: { fromKey?: string; nextKey?: string; size: number; maxSize: number; total?: number | null; }; } export interface SophosLiveDiscoverQuery { id: string; name: string; code?: string; description?: string; template?: string; } export interface SophosLiveDiscoverQueryPage { pages: { current?: number; size: number; total?: number; maxSize: number; }; items: SophosLiveDiscoverQuery[]; } export interface SophosLiveDiscoverRun { id: string; status: string; template?: string; performance?: Record; endpointCounts?: Record; createdAt?: string; finishedAt?: string; } export interface SophosLiveDiscoverResultsPage { items: Record[]; pages: { fromKey?: string; nextKey?: string; size: number; maxSize: number; total?: number | null; }; } export interface SophosApiError { error: string; message: string; correlationId?: string; code?: string; createdAt?: string; requestId?: string; docUrl?: string; /** Per-field reasons; the Email S/MIME API puts its only explanation here */ errorDetails?: Array<{ error?: string; code?: string; }>; } export interface SophosPagedResponse { pages: { current?: number; size: number; total?: number; maxSize: number; items?: number; fromKey?: string; nextKey?: string; }; items: T[]; } //# sourceMappingURL=sophos.d.ts.map