type: object
description: |
    Status record for an IP address — identifies whether the IP has been
    flagged or blocked. Returned by `GET /admin/ip/{ip}` and updated by the
    matching PUT. The `ip` URL segment is decoded server-side, so callers must
    URL-encode IPv6 colons before calling.
required: [ip, status]
properties:
    ip:
        type: string
        description: IPv4 or IPv6 address.
    status:
        type: string
        description: "`AuthSchemas.AccessStatusCodes` value — `OK`, `Disabled`, etc."
    createdAt: { type: string, format: date-time }
    updatedAt: { type: string, format: date-time }
    notes:
        type: string
        description: Free-form moderator notes.
    history:
        type: array
        items:
            type: object
            additionalProperties: true
example:
    ip: "203.0.113.10"
    status: "OK"
    createdAt: "2026-04-22T10:14:00.000Z"
    updatedAt: "2026-04-22T10:14:00.000Z"
    notes: ""
    history: []
