{"components":{"schemas":{"APIKey":{"properties":{"allowed_ips":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"key_id":{"example":"amxid_…","type":"string"},"last_used_at":{"format":"date-time","nullable":true,"type":"string"},"name":{"type":"string"}},"type":"object"},"APIKeyInput":{"properties":{"allowed_ips":{"description":"IPs/CIDRs; empty = any","items":{"type":"string"},"type":"array"},"name":{"type":"string"}},"required":["name"],"type":"object"},"AuditEntry":{"properties":{"action":{"type":"string"},"actor_email":{"type":"string"},"client_ip":{"type":"string"},"id":{"type":"string"},"method":{"type":"string"},"path":{"type":"string"},"status":{"type":"integer"},"timestamp":{"format":"date-time","type":"string"}},"type":"object"},"Check":{"properties":{"detail":{"type":"string"},"group":{"type":"string"},"score":{"type":"number"}},"type":"object"},"Domain":{"properties":{"active":{"type":"boolean"},"destination":{"example":"mail.example.com","type":"string"},"id":{"format":"uuid","type":"string"},"name":{"example":"example.com","type":"string"}},"type":"object"},"DomainInput":{"properties":{"active":{"type":"boolean"},"destination":{"type":"string"},"name":{"type":"string"}},"required":["name","destination"],"type":"object"},"Error":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"},"ListEntry":{"properties":{"domain_id":{"format":"uuid","nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"enum":["whitelist","blacklist"],"type":"string"},"match":{"enum":["sender","recipient","ip"],"type":"string"},"value":{"type":"string"}},"type":"object"},"ListEntryInput":{"properties":{"domain_id":{"description":"Omit for a global entry","format":"uuid","type":"string"},"kind":{"enum":["whitelist","blacklist"],"type":"string"},"match":{"enum":["sender","recipient","ip"],"type":"string"},"value":{"type":"string"}},"required":["kind","match","value"],"type":"object"},"MailLogEntry":{"properties":{"checks":{"items":{"$ref":"#/components/schemas/Check"},"type":"array"},"client_ip":{"type":"string"},"dkim":{"type":"string"},"dmarc":{"type":"string"},"id":{"type":"string"},"recipient":{"type":"string"},"sender":{"type":"string"},"spam_score":{"type":"number"},"spf":{"type":"string"},"subject":{"type":"string"},"timestamp":{"format":"date-time","type":"string"},"verdict":{"type":"string"}},"type":"object"},"Node":{"properties":{"hostname":{"type":"string"},"id":{"format":"uuid","type":"string"},"status":{"type":"string"},"version":{"type":"string"}},"type":"object"},"QuarantineItem":{"properties":{"id":{"format":"uuid","type":"string"},"reason":{"type":"string"},"recipient":{"type":"string"},"sender":{"type":"string"},"spam_score":{"type":"number"},"subject":{"type":"string"}},"type":"object"},"QueueAction":{"properties":{"node_id":{"format":"uuid","type":"string"},"queue_id":{"type":"string"}},"required":["node_id","queue_id"],"type":"object"},"QueueView":{"properties":{"entries":{"items":{"type":"object"},"type":"array"},"totals":{"additionalProperties":{"type":"integer"},"type":"object"}},"type":"object"},"Rule":{"properties":{"action":{"enum":["reject","quarantine","accept","modify_score"],"type":"string"},"domain_id":{"format":"uuid","nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"enum":["regex","header","country","asn","attachment"],"type":"string"},"name":{"type":"string"},"pattern":{"type":"string"}},"type":"object"},"RuleInput":{"properties":{"action":{"type":"string"},"domain_id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"pattern":{"type":"string"},"score_delta":{"type":"number"}},"required":["name","kind","pattern","action"],"type":"object"}},"securitySchemes":{"ApiKeyId":{"description":"Public Key ID (amxid_…)","in":"header","name":"X-API-Key-Id","type":"apiKey"},"ApiKeySecret":{"description":"Secret (amxsk_…)","in":"header","name":"X-API-Key-Secret","type":"apiKey"}}},"info":{"description":"AegisMX mail-security gateway management API. Authenticate with an API key pair: send both `X-API-Key-Id` and `X-API-Key-Secret` headers, or `Authorization: Bearer \u003ckeyId\u003e:\u003csecret\u003e`. Create keys in the panel under Administration → API Keys. Keys may be restricted to specific source IPs/CIDRs.","title":"AegisMX API","version":"1.0.0"},"openapi":"3.0.3","paths":{"/api-keys":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"keys":{"items":{"$ref":"#/components/schemas/APIKey"},"type":"array"}},"type":"object"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"List API keys (no secrets)","tags":["API Keys"]},"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"key":{"$ref":"#/components/schemas/APIKey"},"secret":{"example":"amxsk_…","type":"string"}},"type":"object"}}},"description":"Created — secret shown once"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Create an API key (secret returned once)","tags":["API Keys"]}},"/api-keys/{id}":{"delete":{"parameters":[{"description":"Key ID","in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Deleted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Delete an API key permanently","tags":["API Keys"]}},"/audit":{"get":{"parameters":[{"description":"Actor contains","in":"query","name":"actor","required":false,"schema":{"type":"string"}},{"description":"Action/path contains","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Max rows","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"entries":{"items":{"$ref":"#/components/schemas/AuditEntry"},"type":"array"}},"type":"object"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Audit log (who did what)","tags":["Audit"]}},"/domains":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"domains":{"items":{"$ref":"#/components/schemas/Domain"},"type":"array"}},"type":"object"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"List protected domains","tags":["Domains"]},"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Domain"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Create a protected domain","tags":["Domains"]}},"/domains/{id}":{"delete":{"parameters":[{"description":"Domain ID","in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Deleted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Delete a domain","tags":["Domains"]},"put":{"parameters":[{"description":"Domain ID","in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Domain"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Update a domain","tags":["Domains"]}},"/lists":{"get":{"parameters":[{"description":"Scope to a domain","in":"query","name":"domain_id","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"entries":{"items":{"$ref":"#/components/schemas/ListEntry"},"type":"array"}},"type":"object"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"List allow/block entries","tags":["Lists"]},"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListEntryInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListEntry"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Add an allow/block entry","tags":["Lists"]}},"/lists/{id}":{"delete":{"parameters":[{"description":"Entry ID","in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Deleted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Delete a list entry","tags":["Lists"]}},"/logs":{"get":{"parameters":[{"description":"Match sender/recipient/subject","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Sender contains","in":"query","name":"sender","required":false,"schema":{"type":"string"}},{"description":"Recipient contains","in":"query","name":"recipient","required":false,"schema":{"type":"string"}},{"description":"accepted|rejected|quarantined|deferred","in":"query","name":"verdict","required":false,"schema":{"type":"string"}},{"description":"Scope to a domain","in":"query","name":"domain_id","required":false,"schema":{"type":"string"}},{"description":"RFC3339 start time","in":"query","name":"from","required":false,"schema":{"type":"string"}},{"description":"RFC3339 end time","in":"query","name":"to","required":false,"schema":{"type":"string"}},{"description":"Max rows (default 100)","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"logs":{"items":{"$ref":"#/components/schemas/MailLogEntry"},"type":"array"}},"type":"object"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Search processed-mail logs","tags":["Logs"]}},"/nodes":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"nodes":{"items":{"$ref":"#/components/schemas/Node"},"type":"array"}},"type":"object"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"List mail nodes","tags":["Nodes"]}},"/quarantine":{"get":{"parameters":[{"description":"Search","in":"query","name":"q","required":false,"schema":{"type":"string"}},{"description":"Max rows","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"items":{"items":{"$ref":"#/components/schemas/QuarantineItem"},"type":"array"},"total":{"type":"integer"}},"type":"object"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"List held (quarantined) messages","tags":["Quarantine"]}},"/quarantine/{id}":{"delete":{"parameters":[{"description":"Item ID","in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Deleted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Delete a quarantined message","tags":["Quarantine"]}},"/quarantine/{id}/release":{"post":{"parameters":[{"description":"Item ID","in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Released"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Release a quarantined message for delivery","tags":["Quarantine"]}},"/queues":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueView"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Live per-node mail queue","tags":["Queues"]}},"/queues/delete":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueAction"}}},"required":true},"responses":{"202":{"description":"Accepted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Delete one queued message","tags":["Queues"]}},"/queues/flush":{"post":{"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"dispatched":{"type":"integer"}},"type":"object"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Flush (retry) the whole deferred queue","tags":["Queues"]}},"/queues/retry":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueAction"}}},"required":true},"responses":{"202":{"description":"Accepted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Retry one queued message now","tags":["Queues"]}},"/reports":{"get":{"parameters":[{"description":"Scope to a domain","in":"query","name":"domain_id","required":false,"schema":{"type":"string"}},{"description":"Window in days","in":"query","name":"days","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Aggregate mail-flow reports","tags":["Reports"]}},"/rules":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"rules":{"items":{"$ref":"#/components/schemas/Rule"},"type":"array"}},"type":"object"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"List filter rules","tags":["Rules"]},"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Rule"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Create a filter rule","tags":["Rules"]}},"/rules/{id}":{"delete":{"parameters":[{"description":"Rule ID","in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Deleted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Delete a rule","tags":["Rules"]}},"/theme":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"OK"}},"security":[],"summary":"Get the site-wide UI theme","tags":["Theme"]},"put":{"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"204":{"description":"Saved"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid credentials"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden (role or IP not allowed)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"}},"summary":"Set the site-wide UI theme","tags":["Theme"]}}},"security":[{"ApiKeyId":[],"ApiKeySecret":[]}],"servers":[{"url":"https://panel.aegismx.net/api/v1"}],"tags":[{"name":"Domains"},{"name":"Lists"},{"name":"Rules"},{"name":"Logs"},{"name":"Quarantine"},{"name":"Queues"},{"name":"Nodes"},{"name":"Reports"},{"name":"API Keys"},{"name":"Audit"},{"name":"Theme"}]}