{
  "openapi": "3.1.0",
  "info": {
    "title": "Sender Audit API",
    "version": "2.0.0",
    "description": "Integrate Sender Audit programmatically: create scans, read their results, and\nmonitor the domains and IP addresses you send from.\n\nEvery endpoint below accepts an API key. Endpoints that do not require one are\nmarked as such, and are reachable with the opaque scan identifier alone.\n\n**Base URL** `https://senderaudit.com/api/v1`\n\n**Authentication** `Authorization: Bearer sa_live_...`\n\n**Rate limits** are applied per client IP address. A request over the limit\nanswers `429` with a `Retry-After` header; retry after the delay it gives\nrather than immediately.\n\n**Errors** use the standard status codes. The body carries a `detail` string,\nexcept on `422`, where it carries the list of invalid fields.\n\n**Try it out** runs against production with the key you paste in, and the calls\ncount against your quotas. Operations that delete data are marked; there is no\nsandbox and nothing is undone.\n",
    "contact": {
      "name": "Sender Audit",
      "url": "https://senderaudit.com/contact"
    }
  },
  "servers": [
    {
      "url": "https://senderaudit.com",
      "description": "Production"
    }
  ],
  "tags": [
    {
      "name": "DMARC"
    },
    {
      "name": "Domains"
    },
    {
      "name": "ESP Stats"
    },
    {
      "name": "Groups"
    },
    {
      "name": "Health"
    },
    {
      "name": "IPs"
    },
    {
      "name": "Integrations"
    },
    {
      "name": "Overview"
    },
    {
      "name": "Recommendations"
    },
    {
      "name": "Scans"
    },
    {
      "name": "TLSRPT"
    }
  ],
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "paths": {
    "/api/v1/auth/me/scan-usage": {
      "get": {
        "tags": [
          "Scans"
        ],
        "summary": "Get today's scan usage",
        "description": "Return how many scans the user has consumed today and their plan limit.",
        "operationId": "my_scan_usage_api_v1_auth_me_scan_usage_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanUsageResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/auth/me/scans": {
      "get": {
        "tags": [
          "Scans"
        ],
        "summary": "List account scans",
        "description": "List the scans of the active account, most recent first.",
        "operationId": "my_scans",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Domain"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountScansResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/dmarc/address": {
      "get": {
        "tags": [
          "DMARC"
        ],
        "summary": "Get the DMARC reporting address",
        "description": "Return the unique DMARC RUA address for the account.",
        "operationId": "get_rua_address",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DmarcAddressResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/dmarc/daily": {
      "get": {
        "tags": [
          "DMARC"
        ],
        "summary": "Per-domain volume per day",
        "description": "Return per-domain per-day message counts (pass/fail), one row per unique domain×date.\n\nServed from dmarc_daily_rollup, whose grain is exactly this endpoint's. The\nrelay propagation it applied per (domain, date) is now precomputed, so the\nderived-table probing that dominated the query is gone. Verified equal to\nthe previous formulation on 315 (account, domain, day) rows over 5 days.\n\nWindow boundary: `days` now counts whole UTC days instead of a rolling\nwindow of `days * 86400` seconds. The oldest bucket is therefore complete\nrather than truncated at the current time of day. Consequence of the daily\ngrain, and arguably the more honest reading of \"the last N days\".",
        "operationId": "get_daily",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Domain"
            }
          },
          {
            "name": "group",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Group"
            }
          },
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 30,
              "title": "Days"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DmarcDailyResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/dmarc/daily/detail": {
      "get": {
        "tags": [
          "DMARC"
        ],
        "summary": "Sending sources for one domain and day",
        "description": "Return records aggregated by source IP for a given domain×date.",
        "operationId": "get_daily_detail",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain"
            }
          },
          {
            "name": "date",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DmarcDailyDetailResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/dmarc/domains-summary": {
      "get": {
        "tags": [
          "DMARC"
        ],
        "summary": "DMARC policy per domain",
        "description": "DMARC posture of every verified domain, grouped by organizational domain.\n\nReads the facts the monitoring already stores instead of resolving DNS, so\nan account with a hundred domains gets one query rather than a hundred\nlookups. The trade-off is freshness: values date from the last monitoring\ncycle, and /record-check stays the way to force a live check on one domain.",
        "operationId": "get_domains_summary_api_v1_dmarc_domains_summary_get",
        "parameters": [
          {
            "name": "group",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Group"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DmarcDomainsSummaryResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/dmarc/overview": {
      "get": {
        "tags": [
          "DMARC"
        ],
        "summary": "DMARC overview",
        "description": "Everything the synthesis view shows above the fold, in one call.\n\nNamed /overview rather than /summary: /dmarc/domains-summary already exists\nand the front-end method serving it is called loadDmarcSummary().\n\nServed from dmarc_sender_daily and dmarc_country_daily, which carry the\nwindowed volumes. dmarc_senders could not: its counters are cumulative since\nthe first report, so showing them next to a \"last 30 days\" selector would be\na lie by juxtaposition.",
        "operationId": "get_overview",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Domain"
            }
          },
          {
            "name": "group",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Group"
            }
          },
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 30,
              "title": "Days"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DmarcOverviewResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/dmarc/quota": {
      "get": {
        "tags": [
          "DMARC"
        ],
        "summary": "Get the DMARC report quota",
        "description": "Return the account's aggregated DMARC message consumption for the month.\n\nRead-only view of the counter the report parser increments\n(backend/workers/tasks/dmarc.py::_increment_monthly_message_counter), the\nvery one the Postfix policy daemon compares against, so the gauge can never\ndisagree with the rejections. The unit is aggregated DMARC messages (the\nemails described by the reports), not report files.\n\nA limit of 0 or an absent key means the quota is not enforced, which is the\ncase for every plan until one defines dmarc_messages_per_month.",
        "operationId": "get_dmarc_quota",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DmarcQuotaResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/dmarc/record-check": {
      "get": {
        "tags": [
          "DMARC"
        ],
        "summary": "Check a domain's DMARC record",
        "description": "Fetch and analyze the DMARC record for a verified domain.",
        "operationId": "check_dmarc_record_api_v1_dmarc_record_check_get",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DmarcRecordCheckResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/dmarc/reports": {
      "get": {
        "tags": [
          "DMARC"
        ],
        "summary": "List DMARC reports",
        "description": "List DMARC aggregate reports for the account.",
        "operationId": "list_reports",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Domain"
            }
          },
          {
            "name": "group",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Group"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "title": "Offset"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DmarcReportListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/dmarc/reports/{report_id}": {
      "get": {
        "tags": [
          "DMARC"
        ],
        "summary": "Get a DMARC report",
        "description": "Return a single report with all its records.",
        "operationId": "get_report_api_v1_dmarc_reports__report_id__get",
        "parameters": [
          {
            "name": "report_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Report Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DmarcReportDetail"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/dmarc/senders": {
      "get": {
        "tags": [
          "DMARC"
        ],
        "summary": "The sender catalogue, grouped by role",
        "description": "Return the senders catalog, grouped by effective status, over a window.\n\nThe catalogue keeps cumulative counters; this endpoint serves windowed ones\nread from dmarc_sender_daily, so the numbers here mean the same thing as on\nevery other DMARC screen. The roles, labels and notes still come from the\ncatalogue: those are not time-bound.",
        "operationId": "get_senders",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Domain"
            }
          },
          {
            "name": "group",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Group"
            }
          },
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 30,
              "title": "Days"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DmarcSendersResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/dmarc/senders/{sender_id}": {
      "patch": {
        "tags": [
          "DMARC"
        ],
        "summary": "Classify a sender",
        "description": "Update user_status, user_label, or user_notes for a sender.",
        "operationId": "patch_sender_api_v1_dmarc_senders__sender_id__patch",
        "parameters": [
          {
            "name": "sender_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Sender Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SenderPatchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DmarcSenderEntry"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "DMARC"
        ],
        "summary": "Delete a sender from the catalogue",
        "description": "**Destructive and immediate.** This removes data and its history for the whole account. There is no undo.\n\nRemove a sender from the catalog. It will be re-created on the next incoming report.",
        "operationId": "delete_sender_api_v1_dmarc_senders__sender_id__delete",
        "parameters": [
          {
            "name": "sender_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Sender Id"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/dmarc/senders/{sender_id}/history": {
      "get": {
        "tags": [
          "DMARC"
        ],
        "summary": "Volume history for one sender",
        "description": "Return daily history snapshots for a sender (for trend graphs).",
        "operationId": "get_sender_history_api_v1_dmarc_senders__sender_id__history_get",
        "parameters": [
          {
            "name": "sender_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Sender Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DmarcSenderHistoryResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/dmarc/senders/{sender_id}/reports": {
      "get": {
        "tags": [
          "DMARC"
        ],
        "summary": "Reports mentioning one sender",
        "description": "Return the aggregate reports this sender appears in, most recent first.\n\nLets a user trace an unknown sender back to the reports that mention it,\nwith the source IPs to investigate.",
        "operationId": "get_sender_reports_api_v1_dmarc_senders__sender_id__reports_get",
        "parameters": [
          {
            "name": "sender_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Sender Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 50,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DmarcSenderReportsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/dmarc/stats": {
      "get": {
        "tags": [
          "DMARC"
        ],
        "summary": "Pass and fail volume per day",
        "description": "Return daily pass/forwarded/fail message counts grouped by day.\n\nServed from dmarc_daily_rollup rather than dmarc_records: 5 374 rows for the\nwhole history against 1.4M raw ones, and the counters are already classified,\nso the relay-IP self-join that dominated this endpoint is gone.\n\nTwo behaviour changes, both deliberate:\n- relay propagation is now scoped per domain, as /dmarc/daily always did,\n  instead of per account. A forwarder verdict on one domain no longer leaks\n  onto the others of the same account;\n- the classification is frozen at rollup time, so enriching\n  TRUSTED_FORWARDER_DOMAINS no longer rewrites past days.\n\nWindow boundary: `days` now counts whole UTC days instead of a rolling\nwindow of `days * 86400` seconds. The oldest bucket is therefore complete\nrather than truncated at the current time of day. Consequence of the daily\ngrain, and arguably the more honest reading of \"the last N days\".",
        "operationId": "get_stats",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Domain"
            }
          },
          {
            "name": "group",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Group"
            }
          },
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 30,
              "title": "Days"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DmarcStatsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/dmarc/unmatched-domains": {
      "get": {
        "tags": [
          "DMARC"
        ],
        "summary": "Domains seen in reports but not monitored",
        "description": "Return domains for which DMARC reports were received but not verified on this account.",
        "operationId": "get_unmatched_domains_api_v1_dmarc_unmatched_domains_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DmarcUnmatchedDomainsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "List Domains",
        "description": "List all domains for the active account, or only a group's when given.",
        "operationId": "list_domains",
        "parameters": [
          {
            "name": "group",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Group"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DomainResponse"
                  },
                  "title": "Response List Domains Api V1 Domains Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/candidates": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "List discovered domains",
        "description": "Return pending domain candidates discovered via ESP or Google Postmaster.",
        "operationId": "list_domain_candidates",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DomainCandidate",
                    "additionalProperties": true,
                    "type": "object"
                  },
                  "type": "array",
                  "title": "Response 200 List Domain Candidates Api V1 Domains Candidates Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/candidates/{candidate_id}/claim": {
      "post": {
        "tags": [
          "Domains"
        ],
        "summary": "Claim a discovered domain",
        "description": "Claim a discovered domain candidate.\n- integration_verified=True  → domain added directly as verified (no DNS challenge)\n- integration_verified=False → domain created unverified, returns verification flow data",
        "operationId": "claim_domain_candidate_api_v1_domains_candidates__candidate_id__claim_post",
        "parameters": [
          {
            "name": "candidate_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Candidate Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CandidateClaimResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/candidates/{candidate_id}/dismiss": {
      "post": {
        "tags": [
          "Domains"
        ],
        "summary": "Dismiss a discovered domain",
        "description": "Dismiss a discovered domain candidate — won't appear again unless re-discovered.",
        "operationId": "dismiss_domain_candidate_api_v1_domains_candidates__candidate_id__dismiss_post",
        "parameters": [
          {
            "name": "candidate_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Candidate Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CandidateDismissResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/initiate": {
      "post": {
        "tags": [
          "Domains"
        ],
        "summary": "Initiate Domain",
        "description": "Initiate domain verification. No info leak about existing domains.",
        "operationId": "initiate_domain",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InitiateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/quota": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Get the monitoring quota",
        "description": "Return the account's monitoring quota and usage.",
        "operationId": "get_account_quota",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountQuotaResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/{domain_id}": {
      "delete": {
        "tags": [
          "Domains"
        ],
        "summary": "Delete a domain",
        "description": "**Reserved to admin and owner members.** A key created by a plain member receives `403`.\n\n**Destructive and immediate.** This removes data and its history for the whole account. There is no undo.\n\nDelete a domain from the active account.",
        "operationId": "delete_domain_api_v1_domains__domain_id__delete",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/{domain_id}/confirm-transfer": {
      "post": {
        "tags": [
          "Domains"
        ],
        "summary": "Confirm Transfer",
        "description": "**Reserved to admin and owner members.** A key created by a plain member receives `403`.\n\nConfirm domain transfer after conflict warning.",
        "operationId": "confirm_transfer_api_v1_domains__domain_id__confirm_transfer_post",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/{domain_id}/correlations": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "List correlated signals",
        "description": "Return signal-pair correlations with |r| >= min_r (default 0.3).\nFor each (signal_a, signal_b) pair, returns the lag with the highest |r|.",
        "operationId": "get_domain_correlations_api_v1_domains__domain_id__correlations_get",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          },
          {
            "name": "min_r",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "default": 0.3,
              "title": "Min R"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": true,
                    "$ref": "#/components/schemas/DomainCorrelation"
                  },
                  "title": "Response 200 Get Domain Correlations Api V1 Domains  Domain Id  Correlations Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/{domain_id}/events": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "List deliverability events",
        "description": "Return deliverability events for the last N days (default 90).",
        "operationId": "get_domain_events_api_v1_domains__domain_id__events_get",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          },
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 90,
              "title": "Days"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": true,
                    "$ref": "#/components/schemas/DomainEvent"
                  },
                  "title": "Response 200 Get Domain Events Api V1 Domains  Domain Id  Events Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/{domain_id}/gpt-status": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Get Google Postmaster metrics",
        "description": "Return latest GPT status + 30-day history for a domain.",
        "operationId": "get_domain_gpt_status_api_v1_domains__domain_id__gpt_status_get",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainGptStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/{domain_id}/health-card": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Get a domain health card",
        "description": "Return structured health card for the score card dashboard.",
        "operationId": "get_domain_health_card_api_v1_domains__domain_id__health_card_get",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainHealthCardResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/{domain_id}/health-history": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Get a domain score history",
        "description": "Return health score history for a verified domain (last 90 days).",
        "operationId": "get_domain_health_history_api_v1_domains__domain_id__health_history_get",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainHealthHistoryResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/{domain_id}/monitored-items": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "List monitored hosts",
        "description": "Return all monitored hosts with their types for a verified domain.",
        "operationId": "get_monitored_items_api_v1_domains__domain_id__monitored_items_get",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitoredItemsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/{domain_id}/monitored-items/{item_id}": {
      "patch": {
        "tags": [
          "Domains"
        ],
        "summary": "Pause or resume one monitored host",
        "description": "**Reserved to admin and owner members.** A key created by a plain member receives `403`.\n\nToggle a monitored host active/inactive.",
        "operationId": "toggle_monitored_item_api_v1_domains__domain_id__monitored_items__item_id__patch",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          },
          {
            "name": "item_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Item Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitoredItemToggleResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/{domain_id}/monitoring": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Get the monitored DNS records",
        "description": "Return active DNS records and recent timeline for a verified domain.",
        "operationId": "get_domain_monitoring_api_v1_domains__domain_id__monitoring_get",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainMonitoringResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "patch": {
        "tags": [
          "Domains"
        ],
        "summary": "Pause or resume monitoring for a whole domain",
        "description": "**Reserved to admin and owner members.** A key created by a plain member receives `403`.\n\nEnable or disable monitoring for ALL hosts of a domain at once.\n\nOn enable, checks that activating every inactive host stays within the\naccount's monitored_hosts quota; returns a structured 403 otherwise.",
        "operationId": "toggle_domain_monitoring_api_v1_domains__domain_id__monitoring_patch",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DomainMonitoringToggle"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainMonitoringToggleResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/{domain_id}/monitoring/scan": {
      "post": {
        "tags": [
          "Domains"
        ],
        "summary": "Trigger a DNS monitoring scan",
        "description": "Trigger an immediate DNS knowledge build for a verified domain.\n\n`manual=true` marks an explicit user-initiated rescan (gated by\nfeature_manual_rescan). The automatic bootstrap call made by the\ndashboard when a domain has no monitoring records yet stays free.",
        "operationId": "trigger_monitoring_scan_api_v1_domains__domain_id__monitoring_scan_post",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          },
          {
            "name": "manual",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "title": "Manual"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitoringScanResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/{domain_id}/score-summary": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Get the scan score summary",
        "description": "Return gamified score summary for a verified domain.",
        "operationId": "get_domain_score_summary_api_v1_domains__domain_id__score_summary_get",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainScoreSummaryResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/{domain_id}/snapshot/compute": {
      "post": {
        "tags": [
          "Domains"
        ],
        "summary": "Compute yesterday's snapshot now",
        "description": "Trigger an on-demand snapshot compute for yesterday (J-1).",
        "operationId": "compute_domain_snapshot_api_v1_domains__domain_id__snapshot_compute_post",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainSnapshot"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/{domain_id}/snapshots": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "List daily snapshots",
        "description": "Return daily snapshots for the last N days (default 90).",
        "operationId": "get_domain_snapshots_api_v1_domains__domain_id__snapshots_get",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          },
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 90,
              "title": "Days"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": true,
                    "$ref": "#/components/schemas/DomainSnapshot"
                  },
                  "title": "Response 200 Get Domain Snapshots Api V1 Domains  Domain Id  Snapshots Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/{domain_id}/spf-advisor": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Analyse the SPF record",
        "description": "Analyse SPF record against real DMARC traffic to surface dead/overlarge mechanisms.",
        "operationId": "get_spf_advisor_api_v1_domains__domain_id__spf_advisor_get",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          },
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 90,
              "title": "Days"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpfAdvisorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/domains/{domain_id}/verify": {
      "post": {
        "tags": [
          "Domains"
        ],
        "summary": "Verify Domain",
        "description": "Verify domain ownership. Returns conflict if already verified on another account.",
        "operationId": "verify_domain_api_v1_domains__domain_id__verify_post",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerifyResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/esp/stats/bounce-reasons": {
      "get": {
        "tags": [
          "ESP Stats"
        ],
        "summary": "Top bounce reasons per mailbox provider",
        "description": "Top-3 raisons de bounce/blocked par destination MBP pour un jour, telles\nque clusterisées par le job cluster_bounce_reasons (Mailjet v1 uniquement,\nvoir backend/shared/bounce_clustering.py). Absent d'une réponse = ce MBP n'a\npas atteint le seuil de pertinence ce jour-là (pas d'entrée du tout, pas une\nliste vide) : la table ne persiste jamais un rang sous le seuil.\n\nlabel_key, quand présent, est un suffixe à résoudre côté front via\nt('esp_stats.' + label_key) ; sinon afficher `template` tel quel (déjà\ncompréhensible — jargon SMTP ou catégorie Mailjet — simplement non localisé).",
        "operationId": "esp_stats_bounce_reasons_api_v1_esp_stats_bounce_reasons_get",
        "parameters": [
          {
            "name": "provider",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Provider"
            }
          },
          {
            "name": "channel",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "marketing | transactional",
              "title": "Channel"
            },
            "description": "marketing | transactional"
          },
          {
            "name": "date",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "title": "Date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EspBounceReasonsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/esp/stats/breakdown": {
      "get": {
        "tags": [
          "ESP Stats"
        ],
        "summary": "ESP metrics grouped by one dimension",
        "description": "Agrégat d'un jour depuis esp_daily_buckets, groupé par une seule dimension\n(destination MBP, IP d'expédition, ou campagne).\n\nLes colonnes retournées s'adaptent : un group-by par IP n'expose que les\nmétriques de livraison, car les events d'engagement (opens/clicks/unsubs)\nne portent pas l'IP d'expédition. `available_columns` indique au front les\ncolonnes pertinentes ; `engagement_available` signale si l'engagement est\nexploitable pour ce group-by.",
        "operationId": "esp_stats_breakdown",
        "parameters": [
          {
            "name": "provider",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Provider"
            }
          },
          {
            "name": "channel",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "marketing | transactional",
              "title": "Channel"
            },
            "description": "marketing | transactional"
          },
          {
            "name": "date",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "title": "Date"
            }
          },
          {
            "name": "group_by",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "mbp | ip | campaign",
              "title": "Group By"
            },
            "description": "mbp | ip | campaign"
          },
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Domain"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EspBreakdownResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/esp/stats/daily": {
      "get": {
        "tags": [
          "ESP Stats"
        ],
        "summary": "Daily ESP metrics",
        "description": "Retourne les métriques daily depuis esp_metrics.\nUne ligne = un (date, provider, channel_type, domain).",
        "operationId": "esp_stats_daily",
        "parameters": [
          {
            "name": "provider",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Provider"
            }
          },
          {
            "name": "channel",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "marketing | transactional",
              "title": "Channel"
            },
            "description": "marketing | transactional"
          },
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Domain"
            }
          },
          {
            "name": "date_from",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Date From"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Date To"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EspDailyResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/esp/stats/detail": {
      "get": {
        "tags": [
          "ESP Stats"
        ],
        "summary": "Granular ESP metrics",
        "description": "Détail granulaire pour un (provider, channel, date) depuis esp_daily_buckets.\nGroupé par campaign_key × destination_mbp × sending_ip.\nRetourne une liste vide si aucune donnée webhook n'existe pour ce jour.",
        "operationId": "esp_stats_detail",
        "parameters": [
          {
            "name": "provider",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Provider"
            }
          },
          {
            "name": "channel",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "marketing | transactional",
              "title": "Channel"
            },
            "description": "marketing | transactional"
          },
          {
            "name": "date",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "title": "Date"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Domain"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EspDetailResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/esp/stats/providers": {
      "get": {
        "tags": [
          "ESP Stats"
        ],
        "summary": "List connected ESP providers",
        "description": "Retourne les combinaisons (provider, channel_type, domain) disponibles\npour ce compte dans esp_metrics. Sert à peupler les filtres du dashboard.",
        "operationId": "esp_stats_providers",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EspProvidersResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/esp/stats/timeseries": {
      "get": {
        "tags": [
          "ESP Stats"
        ],
        "summary": "Daily series for one dimension",
        "description": "Série journalière d'une seule dimension (ex: MBP=microsoft) sur une fenêtre,\npour comparaison inter-jours et détection de tendances côté front.\n\nL'analyse (deltas, moyenne glissante, z-score, anomalies) est calculée en JS\nà partir de cette série brute : le serveur ne fige aucun seuil.",
        "operationId": "esp_stats_timeseries",
        "parameters": [
          {
            "name": "provider",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Provider"
            }
          },
          {
            "name": "channel",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "marketing | transactional",
              "title": "Channel"
            },
            "description": "marketing | transactional"
          },
          {
            "name": "group_by",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "mbp | ip | campaign",
              "title": "Group By"
            },
            "description": "mbp | ip | campaign"
          },
          {
            "name": "value",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "valeur de la dimension (ex: microsoft)",
              "title": "Value"
            },
            "description": "valeur de la dimension (ex: microsoft)"
          },
          {
            "name": "date_from",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Date From"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Date To"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Domain"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EspTimeseriesResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/groups": {
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "List resource groups",
        "description": "Every group of the account, inactive ones included.\n\nThe management view needs the full picture; the top selector filters on\nis_active itself.",
        "operationId": "list_groups",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupListResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Groups"
        ],
        "summary": "Create a resource group",
        "description": "Create a resource group, used to scope domains and IPs together.",
        "operationId": "create_group",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/groups/assignable": {
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "List assignable domains and IPs",
        "description": "Verified domains and IPs, with the groups each already belongs to.",
        "operationId": "list_assignable",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssignableResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/groups/membership/domain/{domain_id}": {
      "put": {
        "tags": [
          "Groups"
        ],
        "summary": "Set the groups of a domain",
        "description": "Set the groups a domain belongs to, from its own sheet.",
        "operationId": "set_domain_groups_api_v1_groups_membership_domain__domain_id__put",
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ObjectGroupsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectGroupsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/groups/membership/ip/{ip_id}": {
      "put": {
        "tags": [
          "Groups"
        ],
        "summary": "Set the groups of an IP",
        "description": "Set the groups an IP belongs to, from its own sheet.",
        "operationId": "set_ip_groups_api_v1_groups_membership_ip__ip_id__put",
        "parameters": [
          {
            "name": "ip_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Ip Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ObjectGroupsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectGroupsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/groups/{public_id}": {
      "patch": {
        "tags": [
          "Groups"
        ],
        "summary": "Rename a resource group",
        "description": "Update a resource group. Only the fields you send are changed.",
        "operationId": "patch_group_api_v1_groups__public_id__patch",
        "parameters": [
          {
            "name": "public_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Public Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupPatchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Groups"
        ],
        "summary": "Delete a resource group",
        "description": "**Destructive and immediate.** This removes data and its history for the whole account. There is no undo.\n\nDelete a group. Membership rows go with it, the domains and IPs stay.",
        "operationId": "delete_group_api_v1_groups__public_id__delete",
        "parameters": [
          {
            "name": "public_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Public Id"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/groups/{public_id}/members": {
      "put": {
        "tags": [
          "Groups"
        ],
        "summary": "Replace a group's members",
        "description": "Replace the whole membership of a group.\n\nSending the full list rather than diffs keeps the picker idempotent: what\nthe user sees checked is what ends up stored, whatever happened meanwhile.",
        "operationId": "set_members_api_v1_groups__public_id__members_put",
        "parameters": [
          {
            "name": "public_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Public Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupMembersRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/health": {
      "get": {
        "tags": [
          "Health"
        ],
        "summary": "Service health",
        "description": "Report whether the API and its dependencies answer.\n\nOpen to everyone and cheap to call. Useful as a connectivity check\nbefore wiring the rest of your integration.",
        "operationId": "health_check",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthResponse"
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/integrations": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "Integration status",
        "description": "Return current integrations status for the account.",
        "operationId": "list_integrations",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegrationsStatusResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/integrations/esp": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "List connected ESPs",
        "description": "Return connected ESP providers for the account.",
        "operationId": "list_esp_integrations",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/EspIntegration",
                    "additionalProperties": true,
                    "type": "object"
                  },
                  "type": "array",
                  "title": "Response 200 List Esp Integrations Api V1 Integrations Esp Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/integrations/esp/catalog": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "List supported ESP providers",
        "description": "Return the list of supported ESP providers (for UI auto-discovery).\n\nForward-only providers are excluded: this catalog drives the API-key\nconnection form, which they have no credential to fill.",
        "operationId": "get_esp_catalog",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/EspCatalogEntry",
                    "additionalProperties": true,
                    "type": "object"
                  },
                  "type": "array",
                  "title": "Response 200 Get Esp Catalog Api V1 Integrations Esp Catalog Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/integrations/esp/connect": {
      "post": {
        "tags": [
          "Integrations"
        ],
        "summary": "Connect an ESP with an API key",
        "description": "Connect an ESP by storing an encrypted API key.\nBody: { \"provider\": \"brevo\", \"credential\": \"api-key-here\" }",
        "operationId": "connect_esp",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EspStatusResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/integrations/esp/forward/connect": {
      "post": {
        "tags": [
          "Integrations"
        ],
        "summary": "Connect an ESP by webhook forwarding",
        "description": "Set up a forward (client-relay) ESP integration.\n\nBody: { \"provider\": \"brevo\"|\"mailjet\"|\"senderaudit\",\n        \"channels\": [\"transactional\", \"marketing\"] }\n\nThe client relays raw ESP webhook payloads to the returned URL(s). Used when\nthe client's own ESP webhook already owns the event slot (so we cannot\nauto-register), or when they simply prefer this mode. \"senderaudit\" is the\nnative format, for senders with no supported ESP at all. No API key is\nrequired.\n\nChannel is never self-declared by content: Mailjet derives it from the\npayload and senderaudit carries it per event (one URL each), while Brevo\nrelies on the client mirroring their existing transactional/marketing\nwebhooks onto the matching URL.",
        "operationId": "connect_esp_forward",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EspForwardConnectResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/integrations/esp/quota": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "Get the ESP event quota",
        "description": "Return the account's ESP sent-event consumption for the current period.\n\nRead-only view of the Redis counter that backend/shared/esp_quota.py\nincrements on webhook ingestion, so no extra bookkeeping is needed. Plans\ngranting a monthly allowance are metered monthly, the others daily; a limit\nof 0 means the quota is not enforced.",
        "operationId": "get_esp_quota",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EspQuotaResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/integrations/esp/{provider}": {
      "delete": {
        "tags": [
          "Integrations"
        ],
        "summary": "Disconnect an ESP",
        "description": "**Destructive and immediate.** This removes data and its history for the whole account. There is no undo.\n\nDisconnect an ESP integration (mark inactive, do not delete data).\n\nA provider may have two rows (native esp_api + client_forward); ?source\nselects which one to disconnect (defaults to esp_api for back-compat).",
        "operationId": "disconnect_esp_api_v1_integrations_esp__provider__delete",
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Provider"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EspStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/integrations/esp/{provider}/identities": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "List discovered sender identities",
        "description": "Return discovered sender identities for the given ESP provider.",
        "operationId": "get_esp_identities_api_v1_integrations_esp__provider__identities_get",
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Provider"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": true,
                    "$ref": "#/components/schemas/EspSenderIdentity"
                  },
                  "title": "Response 200 Get Esp Identities Api V1 Integrations Esp  Provider  Identities Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/integrations/esp/{provider}/sync": {
      "post": {
        "tags": [
          "Integrations"
        ],
        "summary": "Trigger an ESP sync",
        "description": "Trigger an immediate ESP sync (metrics + identities) for the given provider.",
        "operationId": "trigger_esp_sync_api_v1_integrations_esp__provider__sync_post",
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Provider"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EspStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/integrations/google-postmaster": {
      "delete": {
        "tags": [
          "Integrations"
        ],
        "summary": "Disconnect Google Postmaster",
        "description": "**Destructive and immediate.** This removes data and its history for the whole account. There is no undo.\n\nRevoke GPT integration: mark inactive and clear token.",
        "operationId": "gpt_disconnect_api_v1_integrations_google_postmaster_delete",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/integrations/google-postmaster/collect": {
      "post": {
        "tags": [
          "Integrations"
        ],
        "summary": "Trigger a Google Postmaster collection",
        "description": "Trigger immediate GPT data collection for all linked domains (rate-limited 4/h).",
        "operationId": "gpt_collect_api_v1_integrations_google_postmaster_collect_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/integrations/google-postmaster/connect": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "Start the Google Postmaster consent flow",
        "description": "Redirect user to Google OAuth consent screen for Postmaster Tools.",
        "operationId": "gpt_connect_api_v1_integrations_google_postmaster_connect_get",
        "responses": {
          "302": {
            "description": "Redirect to the Google consent screen."
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/integrations/google-postmaster/domains": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "List Google Postmaster domains",
        "description": "List domains verified in Google Postmaster Tools, enriched with local status + quota.",
        "operationId": "gpt_list_domains_api_v1_integrations_google_postmaster_domains_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GptDomainsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/integrations/google-postmaster/link-domain": {
      "post": {
        "tags": [
          "Integrations"
        ],
        "summary": "Link a Google Postmaster domain",
        "description": "Link a GPT-verified domain to this account (auto-validate or create).",
        "operationId": "gpt_link_domain_api_v1_integrations_google_postmaster_link_domain_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": true,
                "type": "object",
                "title": "Body"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GptLinkDomainResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/ips": {
      "get": {
        "tags": [
          "IPs"
        ],
        "summary": "List Ips",
        "description": "List all IPs for the active account, or only a group's when given.",
        "operationId": "list_ips",
        "parameters": [
          {
            "name": "group",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Group"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IpResponse"
                  },
                  "title": "Response List Ips Api V1 Ips Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/ips/initiate": {
      "post": {
        "tags": [
          "IPs"
        ],
        "summary": "Initiate Ip",
        "description": "Initiate IP verification.\n\nResolves PTR records for all IPs, extracts root domains.\nscope=\"ptr\": verify against exact PTR hostnames.\nscope=\"root\": verify against root domains (only meaningful for CIDR/range).\nFor single IPs, scope is always treated as \"ptr\".",
        "operationId": "initiate_ip",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InitiateIpRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IpResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/ips/preview": {
      "post": {
        "tags": [
          "IPs"
        ],
        "summary": "Preview an IP before adding it",
        "description": "Resolve PTR for an IP and return PTR hostnames, root domains, and email targets.",
        "operationId": "preview_ip",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreviewIpRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IpPreviewResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/ips/quota": {
      "get": {
        "tags": [
          "IPs"
        ],
        "summary": "Get the IP monitoring quota",
        "description": "Return the account's IP monitoring quota and usage.",
        "operationId": "get_ip_quota",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IpQuotaResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/ips/{ip_id}": {
      "delete": {
        "tags": [
          "IPs"
        ],
        "summary": "Delete an IP",
        "description": "**Reserved to admin and owner members.** A key created by a plain member receives `403`.\n\n**Destructive and immediate.** This removes data and its history for the whole account. There is no undo.\n\nDelete an IP and all associated records.",
        "operationId": "delete_ip_api_v1_ips__ip_id__delete",
        "parameters": [
          {
            "name": "ip_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Ip Id"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/ips/{ip_id}/health-card": {
      "get": {
        "tags": [
          "IPs"
        ],
        "summary": "Get an IP health card",
        "description": "Return structured health card for an IP.",
        "operationId": "get_ip_health_card_api_v1_ips__ip_id__health_card_get",
        "parameters": [
          {
            "name": "ip_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Ip Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IpHealthCardResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/ips/{ip_id}/health-history": {
      "get": {
        "tags": [
          "IPs"
        ],
        "summary": "Get an IP score history",
        "description": "Return health score history for a verified IP (last 90 days).",
        "operationId": "get_ip_health_history_api_v1_ips__ip_id__health_history_get",
        "parameters": [
          {
            "name": "ip_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Ip Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IpHealthHistoryResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/ips/{ip_id}/monitoring": {
      "patch": {
        "tags": [
          "IPs"
        ],
        "summary": "Pause or resume IP monitoring",
        "description": "**Reserved to admin and owner members.** A key created by a plain member receives `403`.\n\nPause or resume monitoring for an IP group.\n\nPausing is always allowed. Resuming re-checks the monitored_ips quota,\nsince the group may have been paused by a plan downgrade: the quota is\nmetered in addresses, so a multi-address group only comes back if the\nwhole of it fits.",
        "operationId": "toggle_ip_monitoring_api_v1_ips__ip_id__monitoring_patch",
        "parameters": [
          {
            "name": "ip_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Ip Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IpMonitoringToggleResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/ips/{ip_id}/verify": {
      "post": {
        "tags": [
          "IPs"
        ],
        "summary": "Verify Ip",
        "description": "Verify IP ownership via DNS TXT record.\n\nChecks TXT record on each host in verification_progress.\nHosts can be exact PTR hostnames (single IP) or root domains (CIDR/range with scope=root).",
        "operationId": "verify_ip_api_v1_ips__ip_id__verify_post",
        "parameters": [
          {
            "name": "ip_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Ip Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerifyIpResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/overview": {
      "get": {
        "tags": [
          "Overview"
        ],
        "summary": "Account overview",
        "description": "Return the aggregated overview payload for the active account.\n\n`group` restricts it to one resource group's domains and IPs. Everything\ndownstream (global score, actions, trend) derives from the asset list, so\nfiltering the two initial queries filters the whole payload.",
        "operationId": "get_overview",
        "parameters": [
          {
            "name": "group",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Group"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OverviewResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/recommendations": {
      "get": {
        "tags": [
          "Recommendations"
        ],
        "summary": "List recommendations",
        "description": "Return recommendations for the account.\nstatus: 'active' (default), 'resolved', 'dismissed', 'all'",
        "operationId": "get_recommendations",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Domain"
            }
          },
          {
            "name": "group",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Group"
            }
          },
          {
            "name": "severity",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Severity"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "active",
              "title": "Status"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": true,
                    "$ref": "#/components/schemas/RecommendationResponse"
                  },
                  "title": "Response 200 Get Recommendations Api V1 Recommendations Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/recommendations/{rec_id}/dismiss": {
      "post": {
        "tags": [
          "Recommendations"
        ],
        "summary": "Dismiss a recommendation",
        "description": "Dismiss a recommendation, which stops it from being suggested again.",
        "operationId": "dismiss_recommendation_api_v1_recommendations__rec_id__dismiss_post",
        "parameters": [
          {
            "name": "rec_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Rec Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DismissedResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/recommendations/{rec_id}/resolve": {
      "post": {
        "tags": [
          "Recommendations"
        ],
        "summary": "Resolve a recommendation",
        "description": "Mark a recommendation as resolved once you have applied the change.",
        "operationId": "resolve_recommendation_api_v1_recommendations__rec_id__resolve_post",
        "parameters": [
          {
            "name": "rec_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Rec Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResolvedResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/scans": {
      "post": {
        "tags": [
          "Scans"
        ],
        "summary": "Create a scan",
        "description": "Create a scan and return the address to send the email to.\n\nThe scan is created empty. Send the email you want audited to the address\nin the response, then poll the scan until its status reaches `completed`.",
        "operationId": "create_scan",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScanCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/scans/{local_part}": {
      "get": {
        "tags": [
          "Scans"
        ],
        "summary": "Get a scan",
        "description": "Read a scan and its current status.\n\nNo credential is required: the identifier in the URL is the secret. Poll\nthis until `status` is `completed`, then read the results.",
        "operationId": "get_scan_by_local_api_v1_scans__local_part__get",
        "parameters": [
          {
            "name": "local_part",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Local Part"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/scans/{local_part}/download-eml": {
      "get": {
        "tags": [
          "Scans"
        ],
        "summary": "Download the raw message",
        "description": "Download the raw .eml file for a scan. Requires authenticated owner.",
        "operationId": "download_eml_api_v1_scans__local_part__download_eml_get",
        "parameters": [
          {
            "name": "local_part",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Local Part"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The email exactly as received.",
            "content": {
              "message/rfc822": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/scans/{local_part}/email-type": {
      "patch": {
        "tags": [
          "Scans"
        ],
        "summary": "Override the detected email type",
        "description": "Persist the user's email-type override on a scan they own.",
        "operationId": "set_email_type_override_api_v1_scans__local_part__email_type_patch",
        "parameters": [
          {
            "name": "local_part",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Local Part"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/_EmailTypeOverrideBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmailTypeOverrideResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/scans/{local_part}/optimized-images": {
      "get": {
        "tags": [
          "Scans"
        ],
        "summary": "Download the optimized images",
        "description": "Download the ZIP bundle of WebP-optimised images. Requires authentication.",
        "operationId": "download_optimized_images_api_v1_scans__local_part__optimized_images_get",
        "parameters": [
          {
            "name": "local_part",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Local Part"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A zip archive of the compressed images found in the email.",
            "content": {
              "application/zip": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/scans/{local_part}/pdf": {
      "get": {
        "tags": [
          "Scans"
        ],
        "summary": "Download the report as PDF",
        "description": "Export scan results as a PDF report. Requires authentication.",
        "operationId": "export_pdf_api_v1_scans__local_part__pdf_get",
        "parameters": [
          {
            "name": "local_part",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Local Part"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^(fr|en|de|es)$",
              "default": "en",
              "title": "Lang"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The rendered report.",
            "content": {
              "application/pdf": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/scans/{local_part}/results": {
      "get": {
        "tags": [
          "Scans"
        ],
        "summary": "Get scan results",
        "description": "Read the full audit of a completed scan.\n\nNo credential is required: the identifier in the URL is the secret.\nAnswers `404` until the scan reaches `completed`.",
        "operationId": "get_scan_results_by_local_api_v1_scans__local_part__results_get",
        "parameters": [
          {
            "name": "local_part",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Local Part"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanResultResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/tlsrpt/address": {
      "get": {
        "tags": [
          "TLSRPT"
        ],
        "summary": "Get the TLS reporting address",
        "description": "Return the unique TLSRPT reporting address for the account.",
        "operationId": "get_tlsrpt_address",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TlsrptAddressResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/tlsrpt/reports": {
      "get": {
        "tags": [
          "TLSRPT"
        ],
        "summary": "List TLS reports",
        "description": "List TLSRPT reports for the account.",
        "operationId": "list_reports",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Domain"
            }
          },
          {
            "name": "group",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Group"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "title": "Offset"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TlsrptReportListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/tlsrpt/reports/{report_id}": {
      "get": {
        "tags": [
          "TLSRPT"
        ],
        "summary": "Get a TLS report",
        "description": "Return a single report with policies and failure details.",
        "operationId": "get_report_api_v1_tlsrpt_reports__report_id__get",
        "parameters": [
          {
            "name": "report_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Report Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TlsrptReportDetail"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/tlsrpt/stats": {
      "get": {
        "tags": [
          "TLSRPT"
        ],
        "summary": "TLS success and failure per day",
        "description": "Return daily success/failure counts + per policy_type breakdown.",
        "operationId": "get_stats",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Domain"
            }
          },
          {
            "name": "group",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Group"
            }
          },
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 30,
              "title": "Days"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TlsrptStatsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/tlsrpt/summary": {
      "get": {
        "tags": [
          "TLSRPT"
        ],
        "summary": "TLS reporting summary",
        "description": "Condensed view: overall success rate, top failure types.",
        "operationId": "get_summary",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Domain"
            }
          },
          {
            "name": "group",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Group"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TlsrptSummaryResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "sa_live_...",
        "description": "Send your API key as a bearer token: `Authorization: Bearer sa_live_...`. Keys are created from the dashboard, under Account, and belong to an account rather than to a user. API access requires a plan that includes it."
      }
    },
    "schemas": {
      "AccountQuotaResponse": {
        "properties": {
          "plan": {
            "type": "string",
            "title": "Plan"
          },
          "limits": {
            "additionalProperties": true,
            "type": "object",
            "title": "Limits"
          },
          "monitored_hosts_used": {
            "type": "integer",
            "title": "Monitored Hosts Used"
          },
          "monitored_hosts_total": {
            "type": "integer",
            "title": "Monitored Hosts Total"
          },
          "monitored_hosts_limit": {
            "type": "integer",
            "title": "Monitored Hosts Limit"
          }
        },
        "type": "object",
        "required": [
          "plan",
          "limits",
          "monitored_hosts_used",
          "monitored_hosts_total",
          "monitored_hosts_limit"
        ],
        "title": "AccountQuotaResponse"
      },
      "AccountScansResponse": {
        "properties": {
          "scans": {
            "items": {
              "$ref": "#/components/schemas/ScanItem"
            },
            "type": "array",
            "title": "Scans"
          },
          "total": {
            "type": "integer",
            "title": "Total"
          }
        },
        "type": "object",
        "required": [
          "scans",
          "total"
        ],
        "title": "AccountScansResponse"
      },
      "ActionItem": {
        "properties": {
          "asset_type": {
            "type": "string",
            "title": "Asset Type"
          },
          "asset_id": {
            "type": "string",
            "title": "Asset Id"
          },
          "asset_name": {
            "type": "string",
            "title": "Asset Name"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "item": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Item"
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "gain": {
            "type": "integer",
            "title": "Gain",
            "default": 0
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          }
        },
        "type": "object",
        "required": [
          "asset_type",
          "asset_id",
          "asset_name"
        ],
        "title": "ActionItem"
      },
      "AlignmentChecks": {
        "properties": {
          "header_matches_smtp": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Header Matches Smtp"
          },
          "header_matches_smtp_relaxed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Header Matches Smtp Relaxed"
          },
          "header_matches_dkim": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Header Matches Dkim"
          },
          "header_matches_dkim_relaxed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Header Matches Dkim Relaxed"
          },
          "smtp_matches_dkim": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Smtp Matches Dkim"
          },
          "smtp_matches_dkim_relaxed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Smtp Matches Dkim Relaxed"
          }
        },
        "type": "object",
        "title": "AlignmentChecks"
      },
      "AlignmentInfo": {
        "properties": {
          "header_from_domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Header From Domain"
          },
          "smtp_from_domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Smtp From Domain"
          },
          "dkim_domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dkim Domain"
          },
          "ptr_domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ptr Domain"
          },
          "aspf": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Aspf"
          },
          "adkim": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Adkim"
          },
          "checks": {
            "$ref": "#/components/schemas/AlignmentChecks",
            "default": {}
          }
        },
        "type": "object",
        "title": "AlignmentInfo"
      },
      "AssetItem": {
        "properties": {
          "type": {
            "type": "string",
            "title": "Type"
          },
          "id": {
            "type": "string",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "score": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score"
          },
          "actions_count": {
            "type": "integer",
            "title": "Actions Count"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "sparkline": {
            "items": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ]
            },
            "type": "array",
            "title": "Sparkline",
            "default": []
          },
          "trend": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Trend"
          }
        },
        "type": "object",
        "required": [
          "type",
          "id",
          "name",
          "actions_count"
        ],
        "title": "AssetItem"
      },
      "AssignableItem": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "label": {
            "type": "string",
            "title": "Label"
          },
          "groups": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Groups"
          }
        },
        "type": "object",
        "required": [
          "id",
          "label",
          "groups"
        ],
        "title": "AssignableItem"
      },
      "AssignableResponse": {
        "properties": {
          "domains": {
            "items": {
              "$ref": "#/components/schemas/AssignableItem"
            },
            "type": "array",
            "title": "Domains"
          },
          "ips": {
            "items": {
              "$ref": "#/components/schemas/AssignableItem"
            },
            "type": "array",
            "title": "Ips"
          }
        },
        "type": "object",
        "required": [
          "domains",
          "ips"
        ],
        "title": "AssignableResponse"
      },
      "AuthenticationInfo": {
        "properties": {
          "spf": {
            "$ref": "#/components/schemas/SPFResult"
          },
          "dkim": {
            "$ref": "#/components/schemas/DKIMResult"
          },
          "dmarc": {
            "$ref": "#/components/schemas/DMARCResult"
          },
          "bimi": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BIMIResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "dnssec": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DNSSECInfo"
              },
              {
                "type": "null"
              }
            ]
          },
          "alignment": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AlignmentInfo"
              },
              {
                "type": "null"
              }
            ]
          },
          "bulk_compliance": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BulkComplianceInfo"
              },
              {
                "type": "null"
              }
            ]
          },
          "mx": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mx"
          },
          "pgp": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pgp"
          },
          "smime": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Smime"
          }
        },
        "type": "object",
        "required": [
          "spf",
          "dkim",
          "dmarc"
        ],
        "title": "AuthenticationInfo"
      },
      "BIMIResult": {
        "properties": {
          "present": {
            "type": "boolean",
            "title": "Present"
          },
          "record": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Record"
          },
          "version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Version"
          },
          "logo_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Logo Url"
          },
          "authority_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Authority Url"
          },
          "valid": {
            "type": "boolean",
            "title": "Valid",
            "default": false
          },
          "errors": {
            "items": {},
            "type": "array",
            "title": "Errors",
            "default": []
          },
          "cert_present": {
            "type": "boolean",
            "title": "Cert Present",
            "default": false
          },
          "cert_valid": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cert Valid"
          },
          "cert_expired": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cert Expired"
          },
          "cert_issuer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cert Issuer"
          },
          "cert_subject": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cert Subject"
          },
          "cert_not_before": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cert Not Before"
          },
          "cert_not_after": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cert Not After"
          },
          "cert_errors": {
            "items": {},
            "type": "array",
            "title": "Cert Errors",
            "default": []
          },
          "logo_accessible": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Logo Accessible"
          },
          "logo_is_svg": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Logo Is Svg"
          },
          "logo_tiny_ps_compliant": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Logo Tiny Ps Compliant"
          },
          "logo_tiny_ps_errors": {
            "items": {},
            "type": "array",
            "title": "Logo Tiny Ps Errors",
            "default": []
          }
        },
        "type": "object",
        "required": [
          "present"
        ],
        "title": "BIMIResult"
      },
      "BulkComplianceInfo": {
        "properties": {
          "dmarc_present": {
            "type": "boolean",
            "title": "Dmarc Present"
          },
          "dmarc_policy": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dmarc Policy"
          },
          "dmarc_aligned": {
            "type": "boolean",
            "title": "Dmarc Aligned"
          },
          "list_unsubscribe": {
            "type": "boolean",
            "title": "List Unsubscribe"
          },
          "list_unsubscribe_mailto": {
            "type": "boolean",
            "title": "List Unsubscribe Mailto",
            "default": false
          },
          "list_unsubscribe_https": {
            "type": "boolean",
            "title": "List Unsubscribe Https",
            "default": false
          },
          "list_unsubscribe_one_click": {
            "type": "boolean",
            "title": "List Unsubscribe One Click"
          },
          "compliant": {
            "type": "boolean",
            "title": "Compliant"
          }
        },
        "type": "object",
        "required": [
          "dmarc_present",
          "dmarc_aligned",
          "list_unsubscribe",
          "list_unsubscribe_one_click",
          "compliant"
        ],
        "title": "BulkComplianceInfo"
      },
      "CandidateClaimResponse": {
        "properties": {
          "status": {
            "type": "string",
            "title": "Status"
          },
          "domain_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Domain Id"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "status"
        ],
        "title": "CandidateClaimResponse",
        "description": "The outcome of claiming a discovered domain.\n\n`status` says what happened: the domain was already verified, it has just\nbeen verified through the integration, or a verification is now pending.\n`domain_id` is absent in the last case."
      },
      "CandidateDismissResponse": {
        "properties": {
          "status": {
            "type": "string",
            "title": "Status"
          }
        },
        "type": "object",
        "required": [
          "status"
        ],
        "title": "CandidateDismissResponse"
      },
      "ContentAnalysisInfo": {
        "properties": {
          "spamassassin": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SpamCheckResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "rspamd": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SpamCheckResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "analysis": {
            "additionalProperties": true,
            "type": "object",
            "title": "Analysis",
            "default": {}
          },
          "images_accessibility": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ImagesAccessibilityInfo"
              },
              {
                "type": "null"
              }
            ]
          },
          "saliency": {
            "$ref": "#/components/schemas/SaliencyInfo",
            "default": {
              "available": false,
              "impact": {
                "desktop": {
                  "above_fold": false,
                  "avg_font_size_px": 0.0,
                  "breathing": 0.0,
                  "contrast_avg_ratio": 0.0,
                  "contrast_failing_samples": [],
                  "contrast_failures": 0,
                  "contrast_grade": "unknown",
                  "contrast_pass_ratio": 1.0,
                  "cta_count": 0,
                  "focus": 0.0,
                  "min_font_size_px": 0.0,
                  "reading": 0.0,
                  "score": 0
                },
                "mobile": {
                  "above_fold": false,
                  "avg_font_size_px": 0.0,
                  "breathing": 0.0,
                  "contrast_avg_ratio": 0.0,
                  "contrast_failing_samples": [],
                  "contrast_failures": 0,
                  "contrast_grade": "unknown",
                  "contrast_pass_ratio": 1.0,
                  "cta_count": 0,
                  "focus": 0.0,
                  "min_font_size_px": 0.0,
                  "reading": 0.0,
                  "score": 0
                },
                "reading_score": 0.0
              },
              "gated": false
            }
          }
        },
        "type": "object",
        "title": "ContentAnalysisInfo"
      },
      "CrisisRef": {
        "properties": {
          "type": {
            "type": "string",
            "title": "Type"
          },
          "id": {
            "type": "string",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          }
        },
        "type": "object",
        "required": [
          "type",
          "id",
          "name"
        ],
        "title": "CrisisRef"
      },
      "DKIMResult": {
        "properties": {
          "result": {
            "type": "string",
            "title": "Result"
          },
          "selector": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selector"
          },
          "domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Domain"
          },
          "signatures": {
            "items": {
              "$ref": "#/components/schemas/DKIMSignature"
            },
            "type": "array",
            "title": "Signatures",
            "default": []
          },
          "failed_signatures_count": {
            "type": "integer",
            "title": "Failed Signatures Count",
            "default": 0
          },
          "failure_detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Failure Detail"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          }
        },
        "type": "object",
        "required": [
          "result"
        ],
        "title": "DKIMResult"
      },
      "DKIMSignature": {
        "properties": {
          "domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Domain"
          },
          "selector": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selector"
          },
          "algorithm": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Algorithm"
          },
          "headers": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Headers"
          },
          "body_hash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Body Hash"
          },
          "canonicalization": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Canonicalization"
          },
          "timestamp": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timestamp"
          },
          "expiry": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expiry"
          },
          "dns_key": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dns Key"
          },
          "verified": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verified"
          },
          "failure_detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Failure Detail"
          }
        },
        "type": "object",
        "title": "DKIMSignature"
      },
      "DMARCResult": {
        "properties": {
          "result": {
            "type": "string",
            "title": "Result"
          },
          "policy": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Policy"
          },
          "alignment_mode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alignment Mode"
          },
          "record": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Record"
          },
          "authoritative_record": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Authoritative Record"
          },
          "spf_alignment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Spf Alignment"
          },
          "dkim_alignment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dkim Alignment"
          },
          "disposition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disposition"
          },
          "failure_detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Failure Detail"
          },
          "failure_detail_i18n": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Failure Detail I18N"
          },
          "pass_via": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Pass Via",
            "default": []
          },
          "rua": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Rua",
            "default": []
          },
          "percentage": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Percentage"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Warnings",
            "default": []
          },
          "rua_ruf_authorization": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rua Ruf Authorization"
          }
        },
        "type": "object",
        "required": [
          "result"
        ],
        "title": "DMARCResult"
      },
      "DNSSECInfo": {
        "properties": {
          "enabled": {
            "type": "boolean",
            "title": "Enabled"
          },
          "checked": {
            "type": "boolean",
            "title": "Checked"
          },
          "domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Domain"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          }
        },
        "type": "object",
        "required": [
          "enabled",
          "checked"
        ],
        "title": "DNSSECInfo"
      },
      "DismissedResponse": {
        "properties": {
          "dismissed": {
            "type": "boolean",
            "title": "Dismissed"
          }
        },
        "type": "object",
        "required": [
          "dismissed"
        ],
        "title": "DismissedResponse"
      },
      "DmarcAddressResponse": {
        "properties": {
          "rua_address": {
            "type": "string",
            "title": "Rua Address"
          },
          "token": {
            "type": "string",
            "title": "Token"
          }
        },
        "type": "object",
        "required": [
          "rua_address",
          "token"
        ],
        "title": "DmarcAddressResponse"
      },
      "DmarcBucket": {
        "properties": {
          "role": {
            "type": "string",
            "title": "Role"
          },
          "messages": {
            "type": "integer",
            "title": "Messages"
          },
          "senders": {
            "type": "integer",
            "title": "Senders"
          }
        },
        "type": "object",
        "required": [
          "role",
          "messages",
          "senders"
        ],
        "title": "DmarcBucket"
      },
      "DmarcCategory": {
        "properties": {
          "role": {
            "type": "string",
            "title": "Role"
          },
          "messages": {
            "type": "integer",
            "title": "Messages"
          },
          "senders": {
            "type": "integer",
            "title": "Senders"
          },
          "parts": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/DmarcBucket"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parts"
          }
        },
        "type": "object",
        "required": [
          "role",
          "messages",
          "senders"
        ],
        "title": "DmarcCategory"
      },
      "DmarcDailyDetailResponse": {
        "properties": {
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "date": {
            "type": "string",
            "title": "Date"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/DmarcDailySource"
            },
            "type": "array",
            "title": "Sources"
          }
        },
        "type": "object",
        "required": [
          "domain",
          "date",
          "sources"
        ],
        "title": "DmarcDailyDetailResponse"
      },
      "DmarcDailyResponse": {
        "properties": {
          "rows": {
            "items": {
              "$ref": "#/components/schemas/DmarcDailyRow"
            },
            "type": "array",
            "title": "Rows"
          },
          "history_days": {
            "type": "integer",
            "title": "History Days"
          }
        },
        "type": "object",
        "required": [
          "rows",
          "history_days"
        ],
        "title": "DmarcDailyResponse"
      },
      "DmarcDailyRow": {
        "properties": {
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "date": {
            "type": "string",
            "title": "Date"
          },
          "pass": {
            "type": "integer",
            "title": "Pass"
          },
          "forwarded": {
            "type": "integer",
            "title": "Forwarded"
          },
          "fail": {
            "type": "integer",
            "title": "Fail"
          },
          "total": {
            "type": "integer",
            "title": "Total"
          },
          "org_count": {
            "type": "integer",
            "title": "Org Count"
          }
        },
        "type": "object",
        "required": [
          "domain",
          "date",
          "pass",
          "forwarded",
          "fail",
          "total",
          "org_count"
        ],
        "title": "DmarcDailyRow"
      },
      "DmarcDailySource": {
        "properties": {
          "source_ip": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Ip"
          },
          "dkim": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dkim"
          },
          "spf": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Spf"
          },
          "disposition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disposition"
          },
          "header_from": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Header From"
          },
          "envelope_from": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Envelope From"
          },
          "count": {
            "type": "integer",
            "title": "Count"
          },
          "source_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Name"
          },
          "source_display": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Display"
          },
          "source_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Type"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "country_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country Code"
          },
          "country_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country Name"
          },
          "source_ptr": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Ptr"
          },
          "org_names": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Org Names"
          }
        },
        "type": "object",
        "required": [
          "count",
          "status"
        ],
        "title": "DmarcDailySource"
      },
      "DmarcDisposition": {
        "properties": {
          "none": {
            "type": "integer",
            "title": "None"
          },
          "quarantine": {
            "type": "integer",
            "title": "Quarantine"
          },
          "reject": {
            "type": "integer",
            "title": "Reject"
          }
        },
        "type": "object",
        "required": [
          "none",
          "quarantine",
          "reject"
        ],
        "title": "DmarcDisposition"
      },
      "DmarcDomainsSummaryResponse": {
        "properties": {
          "rua_address": {
            "type": "string",
            "title": "Rua Address"
          },
          "totals": {
            "$ref": "#/components/schemas/DmarcSummaryTotals"
          },
          "groups": {
            "items": {
              "$ref": "#/components/schemas/DmarcSummaryGroup"
            },
            "type": "array",
            "title": "Groups"
          }
        },
        "type": "object",
        "required": [
          "rua_address",
          "totals",
          "groups"
        ],
        "title": "DmarcDomainsSummaryResponse"
      },
      "DmarcOverviewKpis": {
        "properties": {
          "messages": {
            "type": "integer",
            "title": "Messages"
          },
          "compliance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Compliance"
          },
          "spf_aligned": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Spf Aligned"
          },
          "dkim_aligned": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dkim Aligned"
          },
          "alignment_ready": {
            "type": "boolean",
            "title": "Alignment Ready"
          }
        },
        "type": "object",
        "required": [
          "messages",
          "alignment_ready"
        ],
        "title": "DmarcOverviewKpis"
      },
      "DmarcOverviewResponse": {
        "properties": {
          "window_days": {
            "type": "integer",
            "title": "Window Days"
          },
          "history_days": {
            "type": "integer",
            "title": "History Days"
          },
          "totals": {
            "$ref": "#/components/schemas/DmarcOverviewTotals"
          },
          "buckets": {
            "items": {
              "$ref": "#/components/schemas/DmarcBucket"
            },
            "type": "array",
            "title": "Buckets"
          },
          "categories": {
            "items": {
              "$ref": "#/components/schemas/DmarcCategory"
            },
            "type": "array",
            "title": "Categories"
          },
          "kpis": {
            "$ref": "#/components/schemas/DmarcOverviewKpis"
          },
          "series": {
            "$ref": "#/components/schemas/DmarcOverviewSeries"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "window_days",
          "history_days",
          "totals",
          "buckets",
          "categories",
          "kpis",
          "series"
        ],
        "title": "DmarcOverviewResponse"
      },
      "DmarcOverviewSeries": {
        "properties": {
          "days": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Days"
          },
          "senders": {
            "items": {
              "$ref": "#/components/schemas/DmarcSeriesSender"
            },
            "type": "array",
            "title": "Senders"
          },
          "other": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Other"
          },
          "other_senders": {
            "type": "integer",
            "title": "Other Senders"
          },
          "categories": {
            "items": {
              "$ref": "#/components/schemas/DmarcSeriesCategory"
            },
            "type": "array",
            "title": "Categories"
          }
        },
        "type": "object",
        "required": [
          "days",
          "senders",
          "other",
          "other_senders",
          "categories"
        ],
        "title": "DmarcOverviewSeries"
      },
      "DmarcOverviewTotals": {
        "properties": {
          "messages": {
            "type": "integer",
            "title": "Messages"
          },
          "senders": {
            "type": "integer",
            "title": "Senders"
          }
        },
        "type": "object",
        "required": [
          "messages",
          "senders"
        ],
        "title": "DmarcOverviewTotals"
      },
      "DmarcQuotaResponse": {
        "properties": {
          "period": {
            "type": "string",
            "title": "Period"
          },
          "used": {
            "type": "integer",
            "title": "Used"
          },
          "limit": {
            "type": "integer",
            "title": "Limit"
          },
          "pct": {
            "type": "integer",
            "title": "Pct"
          },
          "resets_at": {
            "type": "string",
            "title": "Resets At"
          },
          "has_reports": {
            "type": "boolean",
            "title": "Has Reports"
          }
        },
        "type": "object",
        "required": [
          "period",
          "used",
          "limit",
          "pct",
          "resets_at",
          "has_reports"
        ],
        "title": "DmarcQuotaResponse"
      },
      "DmarcRecordCheckResponse": {
        "properties": {
          "our_rua_address": {
            "type": "string",
            "title": "Our Rua Address"
          },
          "our_rua_present": {
            "type": "boolean",
            "title": "Our Rua Present"
          },
          "rua_count_warning": {
            "type": "boolean",
            "title": "Rua Count Warning"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "our_rua_address",
          "our_rua_present",
          "rua_count_warning"
        ],
        "title": "DmarcRecordCheckResponse",
        "description": "The shared record check, plus what only an authenticated caller can know.\n\nThe keys of the check itself come from the same helper the public\n/checkers/* endpoints use, and are passed through unchanged."
      },
      "DmarcRecordEntry": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "source_ip": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Ip"
          },
          "count": {
            "type": "integer",
            "title": "Count"
          },
          "disposition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disposition"
          },
          "dkim": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dkim"
          },
          "spf": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Spf"
          },
          "header_from": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Header From"
          },
          "envelope_from": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Envelope From"
          },
          "dkim_domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dkim Domain"
          },
          "dkim_selector": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dkim Selector"
          },
          "spf_domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Spf Domain"
          },
          "source_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Name"
          },
          "source_display": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Display"
          },
          "source_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Type"
          }
        },
        "type": "object",
        "required": [
          "id",
          "count"
        ],
        "title": "DmarcRecordEntry"
      },
      "DmarcReportDetail": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "org_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Org Name"
          },
          "report_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Report Id"
          },
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "date_begin": {
            "type": "integer",
            "title": "Date Begin"
          },
          "date_end": {
            "type": "integer",
            "title": "Date End"
          },
          "adkim": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Adkim"
          },
          "aspf": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Aspf"
          },
          "policy": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Policy"
          },
          "pct": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pct"
          },
          "received_at": {
            "type": "integer",
            "title": "Received At"
          },
          "records": {
            "items": {
              "$ref": "#/components/schemas/DmarcRecordEntry"
            },
            "type": "array",
            "title": "Records"
          }
        },
        "type": "object",
        "required": [
          "id",
          "domain",
          "date_begin",
          "date_end",
          "received_at",
          "records"
        ],
        "title": "DmarcReportDetail"
      },
      "DmarcReportListResponse": {
        "properties": {
          "total": {
            "type": "integer",
            "title": "Total"
          },
          "history_days": {
            "type": "integer",
            "title": "History Days"
          },
          "reports": {
            "items": {
              "$ref": "#/components/schemas/DmarcReportSummary"
            },
            "type": "array",
            "title": "Reports"
          }
        },
        "type": "object",
        "required": [
          "total",
          "history_days",
          "reports"
        ],
        "title": "DmarcReportListResponse"
      },
      "DmarcReportSummary": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "org_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Org Name"
          },
          "report_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Report Id"
          },
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "date_begin": {
            "type": "integer",
            "title": "Date Begin"
          },
          "date_end": {
            "type": "integer",
            "title": "Date End"
          },
          "policy": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Policy"
          },
          "pct": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pct"
          },
          "received_at": {
            "type": "integer",
            "title": "Received At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "domain",
          "date_begin",
          "date_end",
          "received_at"
        ],
        "title": "DmarcReportSummary"
      },
      "DmarcSenderEntry": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "source_key": {
            "type": "string",
            "title": "Source Key"
          },
          "source_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Name"
          },
          "source_display": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Display"
          },
          "source_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Type"
          },
          "first_seen_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "First Seen At"
          },
          "last_seen_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Seen At"
          },
          "total_msgs": {
            "type": "integer",
            "title": "Total Msgs"
          },
          "pass_msgs": {
            "type": "integer",
            "title": "Pass Msgs"
          },
          "partial_msgs": {
            "type": "integer",
            "title": "Partial Msgs"
          },
          "fail_msgs": {
            "type": "integer",
            "title": "Fail Msgs"
          },
          "pass_rate": {
            "type": "number",
            "title": "Pass Rate"
          },
          "disposition": {
            "$ref": "#/components/schemas/DmarcDisposition"
          },
          "lifetime_msgs": {
            "type": "integer",
            "title": "Lifetime Msgs"
          },
          "is_forwarder_auto": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Forwarder Auto"
          },
          "effective_role": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Effective Role"
          },
          "auto_role": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Role"
          },
          "user_role": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Role"
          },
          "quality": {
            "title": "Quality"
          },
          "is_no_rdns": {
            "type": "boolean",
            "title": "Is No Rdns"
          },
          "user_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Label"
          },
          "user_notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Notes"
          }
        },
        "type": "object",
        "required": [
          "id",
          "domain",
          "source_key",
          "total_msgs",
          "pass_msgs",
          "partial_msgs",
          "fail_msgs",
          "pass_rate",
          "disposition",
          "lifetime_msgs",
          "is_no_rdns"
        ],
        "title": "DmarcSenderEntry"
      },
      "DmarcSenderGroupTotal": {
        "properties": {
          "senders": {
            "type": "integer",
            "title": "Senders"
          },
          "messages": {
            "type": "integer",
            "title": "Messages"
          }
        },
        "type": "object",
        "required": [
          "senders",
          "messages"
        ],
        "title": "DmarcSenderGroupTotal"
      },
      "DmarcSenderHistoryPoint": {
        "properties": {
          "date": {
            "type": "string",
            "title": "Date"
          },
          "total_msgs": {
            "type": "integer",
            "title": "Total Msgs"
          },
          "pass_msgs": {
            "type": "integer",
            "title": "Pass Msgs"
          },
          "partial_msgs": {
            "type": "integer",
            "title": "Partial Msgs"
          },
          "fail_msgs": {
            "type": "integer",
            "title": "Fail Msgs"
          },
          "pass_rate": {
            "type": "number",
            "title": "Pass Rate"
          },
          "disposition": {
            "$ref": "#/components/schemas/DmarcDisposition"
          }
        },
        "type": "object",
        "required": [
          "date",
          "total_msgs",
          "pass_msgs",
          "partial_msgs",
          "fail_msgs",
          "pass_rate",
          "disposition"
        ],
        "title": "DmarcSenderHistoryPoint"
      },
      "DmarcSenderHistoryResponse": {
        "properties": {
          "sender_id": {
            "type": "integer",
            "title": "Sender Id"
          },
          "history": {
            "items": {
              "$ref": "#/components/schemas/DmarcSenderHistoryPoint"
            },
            "type": "array",
            "title": "History"
          }
        },
        "type": "object",
        "required": [
          "sender_id",
          "history"
        ],
        "title": "DmarcSenderHistoryResponse"
      },
      "DmarcSenderReport": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "org_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Org Name"
          },
          "report_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Report Id"
          },
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "date_begin": {
            "type": "integer",
            "title": "Date Begin"
          },
          "date_end": {
            "type": "integer",
            "title": "Date End"
          },
          "policy": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Policy"
          },
          "received_at": {
            "type": "integer",
            "title": "Received At"
          },
          "total_msgs": {
            "type": "integer",
            "title": "Total Msgs"
          },
          "pass_msgs": {
            "type": "integer",
            "title": "Pass Msgs"
          },
          "partial_msgs": {
            "type": "integer",
            "title": "Partial Msgs"
          },
          "fail_msgs": {
            "type": "integer",
            "title": "Fail Msgs"
          },
          "ip_count": {
            "type": "integer",
            "title": "Ip Count"
          },
          "source_ips": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Source Ips"
          }
        },
        "type": "object",
        "required": [
          "id",
          "domain",
          "date_begin",
          "date_end",
          "received_at",
          "total_msgs",
          "pass_msgs",
          "partial_msgs",
          "fail_msgs",
          "ip_count",
          "source_ips"
        ],
        "title": "DmarcSenderReport"
      },
      "DmarcSenderReportsResponse": {
        "properties": {
          "sender_id": {
            "type": "integer",
            "title": "Sender Id"
          },
          "history_days": {
            "type": "integer",
            "title": "History Days"
          },
          "reports": {
            "items": {
              "$ref": "#/components/schemas/DmarcSenderReport"
            },
            "type": "array",
            "title": "Reports"
          }
        },
        "type": "object",
        "required": [
          "sender_id",
          "history_days",
          "reports"
        ],
        "title": "DmarcSenderReportsResponse"
      },
      "DmarcSendersResponse": {
        "properties": {
          "unclassified": {
            "items": {
              "$ref": "#/components/schemas/DmarcSenderEntry"
            },
            "type": "array",
            "title": "Unclassified"
          },
          "legitimate": {
            "items": {
              "$ref": "#/components/schemas/DmarcSenderEntry"
            },
            "type": "array",
            "title": "Legitimate"
          },
          "forwarder": {
            "items": {
              "$ref": "#/components/schemas/DmarcSenderEntry"
            },
            "type": "array",
            "title": "Forwarder"
          },
          "unauthorized": {
            "items": {
              "$ref": "#/components/schemas/DmarcSenderEntry"
            },
            "type": "array",
            "title": "Unauthorized"
          },
          "no_rdns": {
            "items": {
              "$ref": "#/components/schemas/DmarcSenderEntry"
            },
            "type": "array",
            "title": "No Rdns"
          },
          "ignored": {
            "items": {
              "$ref": "#/components/schemas/DmarcSenderEntry"
            },
            "type": "array",
            "title": "Ignored"
          },
          "totals": {
            "additionalProperties": {
              "$ref": "#/components/schemas/DmarcSenderGroupTotal"
            },
            "type": "object",
            "title": "Totals"
          },
          "window_days": {
            "type": "integer",
            "title": "Window Days"
          },
          "windowed": {
            "type": "boolean",
            "title": "Windowed"
          }
        },
        "type": "object",
        "required": [
          "unclassified",
          "legitimate",
          "forwarder",
          "unauthorized",
          "no_rdns",
          "ignored",
          "totals",
          "window_days",
          "windowed"
        ],
        "title": "DmarcSendersResponse"
      },
      "DmarcSeriesCategory": {
        "properties": {
          "role": {
            "type": "string",
            "title": "Role"
          },
          "values": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Values"
          }
        },
        "type": "object",
        "required": [
          "role",
          "values"
        ],
        "title": "DmarcSeriesCategory"
      },
      "DmarcSeriesSender": {
        "properties": {
          "source_key": {
            "type": "string",
            "title": "Source Key"
          },
          "label": {
            "type": "string",
            "title": "Label"
          },
          "values": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Values"
          }
        },
        "type": "object",
        "required": [
          "source_key",
          "label",
          "values"
        ],
        "title": "DmarcSeriesSender"
      },
      "DmarcStatsDay": {
        "properties": {
          "day": {
            "type": "integer",
            "title": "Day"
          },
          "date": {
            "type": "string",
            "title": "Date"
          },
          "pass": {
            "type": "integer",
            "title": "Pass"
          },
          "forwarded": {
            "type": "integer",
            "title": "Forwarded"
          },
          "fail": {
            "type": "integer",
            "title": "Fail"
          }
        },
        "type": "object",
        "required": [
          "day",
          "date",
          "pass",
          "forwarded",
          "fail"
        ],
        "title": "DmarcStatsDay"
      },
      "DmarcStatsResponse": {
        "properties": {
          "days": {
            "items": {
              "$ref": "#/components/schemas/DmarcStatsDay"
            },
            "type": "array",
            "title": "Days"
          },
          "domains": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Domains"
          },
          "history_days": {
            "type": "integer",
            "title": "History Days"
          }
        },
        "type": "object",
        "required": [
          "days",
          "domains",
          "history_days"
        ],
        "title": "DmarcStatsResponse"
      },
      "DmarcSummaryDomain": {
        "properties": {
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "org_domain": {
            "type": "string",
            "title": "Org Domain"
          },
          "inherited": {
            "type": "boolean",
            "title": "Inherited"
          },
          "is_org_domain": {
            "type": "boolean",
            "title": "Is Org Domain"
          },
          "rua_status": {
            "type": "string",
            "title": "Rua Status"
          },
          "rua_crowded": {
            "type": "boolean",
            "title": "Rua Crowded"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "domain",
          "org_domain",
          "inherited",
          "is_org_domain",
          "rua_status",
          "rua_crowded"
        ],
        "title": "DmarcSummaryDomain"
      },
      "DmarcSummaryGroup": {
        "properties": {
          "org_domain": {
            "type": "string",
            "title": "Org Domain"
          },
          "domains": {
            "items": {
              "$ref": "#/components/schemas/DmarcSummaryDomain"
            },
            "type": "array",
            "title": "Domains"
          },
          "subdomain_count": {
            "type": "integer",
            "title": "Subdomain Count",
            "default": 0
          }
        },
        "type": "object",
        "required": [
          "org_domain",
          "domains"
        ],
        "title": "DmarcSummaryGroup"
      },
      "DmarcSummaryTotals": {
        "properties": {
          "domains": {
            "type": "integer",
            "title": "Domains"
          },
          "reject": {
            "type": "integer",
            "title": "Reject"
          },
          "quarantine": {
            "type": "integer",
            "title": "Quarantine"
          },
          "none": {
            "type": "integer",
            "title": "None"
          },
          "no_policy": {
            "type": "integer",
            "title": "No Policy"
          },
          "inherited": {
            "type": "integer",
            "title": "Inherited"
          },
          "no_rua": {
            "type": "integer",
            "title": "No Rua"
          }
        },
        "type": "object",
        "required": [
          "domains",
          "reject",
          "quarantine",
          "none",
          "no_policy",
          "inherited",
          "no_rua"
        ],
        "title": "DmarcSummaryTotals"
      },
      "DmarcUnmatchedDomain": {
        "properties": {
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "first_seen_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "First Seen At"
          },
          "last_seen_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Seen At"
          }
        },
        "type": "object",
        "required": [
          "domain"
        ],
        "title": "DmarcUnmatchedDomain"
      },
      "DmarcUnmatchedDomainsResponse": {
        "properties": {
          "domains": {
            "items": {
              "$ref": "#/components/schemas/DmarcUnmatchedDomain"
            },
            "type": "array",
            "title": "Domains"
          }
        },
        "type": "object",
        "required": [
          "domains"
        ],
        "title": "DmarcUnmatchedDomainsResponse"
      },
      "DnsRecordEntry": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "record_type": {
            "type": "string",
            "title": "Record Type"
          },
          "record_key": {
            "type": "string",
            "title": "Record Key"
          },
          "record_value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Record Value"
          },
          "metadata": {
            "title": "Metadata"
          },
          "checked_domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Checked Domain"
          },
          "first_seen_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "First Seen At"
          },
          "last_seen_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Seen At"
          },
          "removed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Removed At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "record_type",
          "record_key"
        ],
        "title": "DnsRecordEntry"
      },
      "DomainCandidate": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "discovered_from": {
            "type": "string",
            "title": "Discovered From"
          },
          "provider_label": {
            "type": "string",
            "title": "Provider Label"
          },
          "integration_verified": {
            "type": "boolean",
            "title": "Integration Verified"
          },
          "dkim_selectors_found": {
            "title": "Dkim Selectors Found"
          },
          "discovered_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discovered At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "domain",
          "discovered_from",
          "provider_label",
          "integration_verified"
        ],
        "title": "DomainCandidate"
      },
      "DomainCorrelation": {
        "properties": {
          "signal_a": {
            "type": "string",
            "title": "Signal A"
          },
          "signal_b": {
            "type": "string",
            "title": "Signal B"
          },
          "lag_days": {
            "type": "integer",
            "title": "Lag Days"
          },
          "window_days": {
            "type": "integer",
            "title": "Window Days"
          },
          "pearson_r": {
            "type": "number",
            "title": "Pearson R"
          },
          "data_points": {
            "type": "integer",
            "title": "Data Points"
          },
          "computed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Computed At"
          }
        },
        "type": "object",
        "required": [
          "signal_a",
          "signal_b",
          "lag_days",
          "window_days",
          "pearson_r",
          "data_points"
        ],
        "title": "DomainCorrelation"
      },
      "DomainEvent": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "event_date": {
            "type": "string",
            "format": "date",
            "title": "Event Date"
          },
          "event_type": {
            "type": "string",
            "title": "Event Type"
          },
          "severity": {
            "type": "string",
            "title": "Severity"
          },
          "detail": {
            "title": "Detail"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "event_date",
          "event_type",
          "severity"
        ],
        "title": "DomainEvent"
      },
      "DomainGptStatusResponse": {
        "properties": {
          "latest": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/GptStatPoint"
              },
              {
                "type": "null"
              }
            ]
          },
          "history": {
            "items": {
              "$ref": "#/components/schemas/GptStatPoint"
            },
            "type": "array",
            "title": "History"
          },
          "gpt_linked": {
            "type": "boolean",
            "title": "Gpt Linked"
          }
        },
        "type": "object",
        "required": [
          "history",
          "gpt_linked"
        ],
        "title": "DomainGptStatusResponse"
      },
      "DomainHealthCardResponse": {
        "properties": {
          "overall": {
            "type": "integer",
            "title": "Overall"
          },
          "max": {
            "type": "integer",
            "title": "Max"
          },
          "achievable_max": {
            "type": "number",
            "title": "Achievable Max"
          },
          "crisis": {
            "type": "boolean",
            "title": "Crisis"
          },
          "categories": {
            "items": {
              "$ref": "#/components/schemas/HealthCardCategory"
            },
            "type": "array",
            "title": "Categories"
          },
          "actions": {
            "items": {
              "$ref": "#/components/schemas/HealthCardAction"
            },
            "type": "array",
            "title": "Actions"
          },
          "sparkline": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Sparkline"
          },
          "bimi_logo_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bimi Logo Url"
          }
        },
        "type": "object",
        "required": [
          "overall",
          "max",
          "achievable_max",
          "crisis",
          "categories",
          "actions",
          "sparkline"
        ],
        "title": "DomainHealthCardResponse"
      },
      "DomainHealthHistoryResponse": {
        "properties": {
          "current_score": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Score"
          },
          "history": {
            "items": {
              "$ref": "#/components/schemas/DomainHealthPoint"
            },
            "type": "array",
            "title": "History"
          }
        },
        "type": "object",
        "required": [
          "history"
        ],
        "title": "DomainHealthHistoryResponse"
      },
      "DomainHealthPoint": {
        "properties": {
          "scored_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scored At"
          },
          "spf": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Spf"
          },
          "dmarc": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dmarc"
          },
          "dkim": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dkim"
          },
          "dnssec": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dnssec"
          },
          "rbl": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rbl"
          },
          "mx": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mx"
          },
          "ssl": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssl"
          },
          "tls": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tls"
          },
          "overall": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Overall"
          }
        },
        "type": "object",
        "title": "DomainHealthPoint"
      },
      "DomainMonitoringResponse": {
        "properties": {
          "records": {
            "items": {
              "$ref": "#/components/schemas/DnsRecordEntry"
            },
            "type": "array",
            "title": "Records"
          },
          "timeline": {
            "items": {
              "$ref": "#/components/schemas/DnsRecordEntry"
            },
            "type": "array",
            "title": "Timeline"
          },
          "building": {
            "type": "boolean",
            "title": "Building"
          }
        },
        "type": "object",
        "required": [
          "records",
          "timeline",
          "building"
        ],
        "title": "DomainMonitoringResponse"
      },
      "DomainMonitoringToggle": {
        "properties": {
          "enabled": {
            "type": "boolean",
            "title": "Enabled"
          }
        },
        "type": "object",
        "required": [
          "enabled"
        ],
        "title": "DomainMonitoringToggle"
      },
      "DomainMonitoringToggleResponse": {
        "properties": {
          "active": {
            "type": "integer",
            "title": "Active"
          },
          "total": {
            "type": "integer",
            "title": "Total"
          },
          "enabled": {
            "type": "boolean",
            "title": "Enabled"
          }
        },
        "type": "object",
        "required": [
          "active",
          "total",
          "enabled"
        ],
        "title": "DomainMonitoringToggleResponse"
      },
      "DomainResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "verification_method": {
            "type": "string",
            "title": "Verification Method"
          },
          "verification_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verification Token"
          },
          "verification_target": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verification Target"
          },
          "is_verified": {
            "type": "boolean",
            "title": "Is Verified"
          },
          "verified_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verified At"
          },
          "created_at": {
            "type": "string",
            "title": "Created At"
          },
          "monitored_hosts_count": {
            "type": "integer",
            "title": "Monitored Hosts Count",
            "default": 0
          },
          "monitored_hosts_active": {
            "type": "integer",
            "title": "Monitored Hosts Active",
            "default": 0
          },
          "monitored_hosts_total": {
            "type": "integer",
            "title": "Monitored Hosts Total",
            "default": 0
          }
        },
        "type": "object",
        "required": [
          "id",
          "domain",
          "verification_method",
          "verification_token",
          "verification_target",
          "is_verified",
          "verified_at",
          "created_at"
        ],
        "title": "DomainResponse"
      },
      "DomainScoreSummaryResponse": {
        "properties": {
          "avg_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avg Score"
          },
          "scan_count": {
            "type": "integer",
            "title": "Scan Count"
          },
          "percentile": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Percentile"
          },
          "percentile_thresholds": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "number"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Percentile Thresholds"
          },
          "eligible_certificate": {
            "type": "boolean",
            "title": "Eligible Certificate"
          },
          "certificate": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ScoreCertificate"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "scan_count",
          "eligible_certificate"
        ],
        "title": "DomainScoreSummaryResponse"
      },
      "DomainSnapshot": {
        "properties": {
          "snapshot_date": {
            "type": "string",
            "format": "date",
            "title": "Snapshot Date"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "snapshot_date"
        ],
        "title": "DomainSnapshot",
        "description": "One day of aggregated signals for a domain.\n\nSelected with SELECT *, so the columns follow the table rather than a list\nfixed here. snapshot_date is the only one guaranteed."
      },
      "EmailInfo": {
        "properties": {
          "size_bytes": {
            "type": "integer",
            "title": "Size Bytes"
          },
          "from_smtp": {
            "type": "string",
            "title": "From Smtp"
          },
          "from_header": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "From Header"
          },
          "to": {
            "type": "string",
            "title": "To"
          },
          "subject": {
            "type": "string",
            "title": "Subject"
          },
          "sent_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sent At"
          }
        },
        "type": "object",
        "required": [
          "size_bytes",
          "from_smtp",
          "from_header",
          "to",
          "subject"
        ],
        "title": "EmailInfo"
      },
      "EmailPreview": {
        "properties": {
          "html_body": {
            "type": "string",
            "title": "Html Body",
            "default": ""
          },
          "text_body": {
            "type": "string",
            "title": "Text Body",
            "default": ""
          }
        },
        "type": "object",
        "title": "EmailPreview"
      },
      "EmailTypeOverrideResponse": {
        "properties": {
          "email_type_override": {
            "type": "string",
            "title": "Email Type Override"
          }
        },
        "type": "object",
        "required": [
          "email_type_override"
        ],
        "title": "EmailTypeOverrideResponse"
      },
      "EncryptionInfo": {
        "properties": {
          "protocol": {
            "type": "string",
            "title": "Protocol"
          },
          "cipher": {
            "additionalProperties": true,
            "type": "object",
            "title": "Cipher"
          }
        },
        "type": "object",
        "required": [
          "protocol",
          "cipher"
        ],
        "title": "EncryptionInfo"
      },
      "EspBounceReason": {
        "properties": {
          "rank": {
            "type": "integer",
            "title": "Rank"
          },
          "count": {
            "type": "integer",
            "title": "Count"
          },
          "mbp_total": {
            "type": "integer",
            "title": "Mbp Total"
          },
          "source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source"
          },
          "smtp_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Smtp Code"
          },
          "template": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Template"
          },
          "sample_raw": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sample Raw"
          },
          "label_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label Key"
          }
        },
        "type": "object",
        "required": [
          "rank",
          "count",
          "mbp_total"
        ],
        "title": "EspBounceReason"
      },
      "EspBounceReasonsResponse": {
        "properties": {
          "by_mbp": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/EspBounceReason"
              },
              "type": "array"
            },
            "type": "object",
            "title": "By Mbp"
          },
          "date": {
            "type": "string",
            "title": "Date"
          }
        },
        "type": "object",
        "required": [
          "by_mbp",
          "date"
        ],
        "title": "EspBounceReasonsResponse"
      },
      "EspBreakdownResponse": {
        "properties": {
          "rows": {
            "items": {
              "$ref": "#/components/schemas/EspBreakdownRow"
            },
            "type": "array",
            "title": "Rows"
          },
          "group_by": {
            "type": "string",
            "title": "Group By"
          },
          "available_columns": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Available Columns"
          },
          "engagement_available": {
            "type": "boolean",
            "title": "Engagement Available"
          },
          "source": {
            "type": "string",
            "title": "Source"
          }
        },
        "type": "object",
        "required": [
          "rows",
          "group_by",
          "available_columns",
          "engagement_available",
          "source"
        ],
        "title": "EspBreakdownResponse"
      },
      "EspBreakdownRow": {
        "properties": {
          "sent": {
            "type": "integer",
            "title": "Sent",
            "default": 0
          },
          "delivered": {
            "type": "integer",
            "title": "Delivered",
            "default": 0
          },
          "hard_bounces": {
            "type": "integer",
            "title": "Hard Bounces",
            "default": 0
          },
          "soft_bounces": {
            "type": "integer",
            "title": "Soft Bounces",
            "default": 0
          },
          "spam_reports": {
            "type": "integer",
            "title": "Spam Reports",
            "default": 0
          },
          "blocked": {
            "type": "integer",
            "title": "Blocked",
            "default": 0
          },
          "deferred": {
            "type": "integer",
            "title": "Deferred",
            "default": 0
          },
          "opens": {
            "type": "integer",
            "title": "Opens",
            "default": 0
          },
          "clicks": {
            "type": "integer",
            "title": "Clicks",
            "default": 0
          },
          "unsubscribes": {
            "type": "integer",
            "title": "Unsubscribes",
            "default": 0
          },
          "unique_opens": {
            "type": "integer",
            "title": "Unique Opens",
            "default": 0
          },
          "unique_clicks": {
            "type": "integer",
            "title": "Unique Clicks",
            "default": 0
          },
          "opens_proxied": {
            "type": "integer",
            "title": "Opens Proxied",
            "default": 0
          },
          "opens_mpp": {
            "type": "integer",
            "title": "Opens Mpp",
            "default": 0
          },
          "opens_nhi": {
            "type": "integer",
            "title": "Opens Nhi",
            "default": 0
          },
          "clicks_nhi": {
            "type": "integer",
            "title": "Clicks Nhi",
            "default": 0
          },
          "key": {
            "type": "string",
            "title": "Key"
          }
        },
        "type": "object",
        "required": [
          "key"
        ],
        "title": "EspBreakdownRow"
      },
      "EspCatalogEntry": {
        "properties": {
          "slug": {
            "type": "string",
            "title": "Slug"
          },
          "label": {
            "type": "string",
            "title": "Label"
          },
          "auth_type": {
            "type": "string",
            "title": "Auth Type"
          },
          "help": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Help"
          },
          "fields": {
            "items": {},
            "type": "array",
            "title": "Fields",
            "default": []
          }
        },
        "type": "object",
        "required": [
          "slug",
          "label",
          "auth_type"
        ],
        "title": "EspCatalogEntry"
      },
      "EspDailyResponse": {
        "properties": {
          "rows": {
            "items": {
              "$ref": "#/components/schemas/EspDailyRow"
            },
            "type": "array",
            "title": "Rows"
          },
          "date_from": {
            "type": "string",
            "title": "Date From"
          },
          "date_to": {
            "type": "string",
            "title": "Date To"
          }
        },
        "type": "object",
        "required": [
          "rows",
          "date_from",
          "date_to"
        ],
        "title": "EspDailyResponse"
      },
      "EspDailyRow": {
        "properties": {
          "sent": {
            "type": "integer",
            "title": "Sent",
            "default": 0
          },
          "delivered": {
            "type": "integer",
            "title": "Delivered",
            "default": 0
          },
          "hard_bounces": {
            "type": "integer",
            "title": "Hard Bounces",
            "default": 0
          },
          "soft_bounces": {
            "type": "integer",
            "title": "Soft Bounces",
            "default": 0
          },
          "spam_reports": {
            "type": "integer",
            "title": "Spam Reports",
            "default": 0
          },
          "blocked": {
            "type": "integer",
            "title": "Blocked",
            "default": 0
          },
          "deferred": {
            "type": "integer",
            "title": "Deferred",
            "default": 0
          },
          "opens": {
            "type": "integer",
            "title": "Opens",
            "default": 0
          },
          "clicks": {
            "type": "integer",
            "title": "Clicks",
            "default": 0
          },
          "unsubscribes": {
            "type": "integer",
            "title": "Unsubscribes",
            "default": 0
          },
          "unique_opens": {
            "type": "integer",
            "title": "Unique Opens",
            "default": 0
          },
          "unique_clicks": {
            "type": "integer",
            "title": "Unique Clicks",
            "default": 0
          },
          "opens_proxied": {
            "type": "integer",
            "title": "Opens Proxied",
            "default": 0
          },
          "opens_mpp": {
            "type": "integer",
            "title": "Opens Mpp",
            "default": 0
          },
          "opens_nhi": {
            "type": "integer",
            "title": "Opens Nhi",
            "default": 0
          },
          "clicks_nhi": {
            "type": "integer",
            "title": "Clicks Nhi",
            "default": 0
          },
          "date": {
            "type": "string",
            "title": "Date"
          },
          "provider": {
            "type": "string",
            "title": "Provider"
          },
          "channel_type": {
            "type": "string",
            "title": "Channel Type"
          },
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "sender_email": {
            "type": "string",
            "title": "Sender Email"
          }
        },
        "type": "object",
        "required": [
          "date",
          "provider",
          "channel_type",
          "domain",
          "sender_email"
        ],
        "title": "EspDailyRow"
      },
      "EspDetailResponse": {
        "properties": {
          "rows": {
            "items": {
              "$ref": "#/components/schemas/EspDetailRow"
            },
            "type": "array",
            "title": "Rows"
          },
          "source": {
            "type": "string",
            "title": "Source"
          }
        },
        "type": "object",
        "required": [
          "rows",
          "source"
        ],
        "title": "EspDetailResponse"
      },
      "EspDetailRow": {
        "properties": {
          "sent": {
            "type": "integer",
            "title": "Sent",
            "default": 0
          },
          "delivered": {
            "type": "integer",
            "title": "Delivered",
            "default": 0
          },
          "hard_bounces": {
            "type": "integer",
            "title": "Hard Bounces",
            "default": 0
          },
          "soft_bounces": {
            "type": "integer",
            "title": "Soft Bounces",
            "default": 0
          },
          "spam_reports": {
            "type": "integer",
            "title": "Spam Reports",
            "default": 0
          },
          "blocked": {
            "type": "integer",
            "title": "Blocked",
            "default": 0
          },
          "deferred": {
            "type": "integer",
            "title": "Deferred",
            "default": 0
          },
          "opens": {
            "type": "integer",
            "title": "Opens",
            "default": 0
          },
          "clicks": {
            "type": "integer",
            "title": "Clicks",
            "default": 0
          },
          "unsubscribes": {
            "type": "integer",
            "title": "Unsubscribes",
            "default": 0
          },
          "unique_opens": {
            "type": "integer",
            "title": "Unique Opens",
            "default": 0
          },
          "unique_clicks": {
            "type": "integer",
            "title": "Unique Clicks",
            "default": 0
          },
          "opens_proxied": {
            "type": "integer",
            "title": "Opens Proxied",
            "default": 0
          },
          "opens_mpp": {
            "type": "integer",
            "title": "Opens Mpp",
            "default": 0
          },
          "opens_nhi": {
            "type": "integer",
            "title": "Opens Nhi",
            "default": 0
          },
          "clicks_nhi": {
            "type": "integer",
            "title": "Clicks Nhi",
            "default": 0
          },
          "campaign_key": {
            "type": "string",
            "title": "Campaign Key"
          },
          "destination_mbp": {
            "type": "string",
            "title": "Destination Mbp"
          },
          "sending_ip": {
            "type": "string",
            "title": "Sending Ip"
          },
          "domain": {
            "type": "string",
            "title": "Domain"
          }
        },
        "type": "object",
        "required": [
          "campaign_key",
          "destination_mbp",
          "sending_ip",
          "domain"
        ],
        "title": "EspDetailRow"
      },
      "EspForwardConnectResponse": {
        "properties": {
          "status": {
            "type": "string",
            "title": "Status"
          },
          "provider": {
            "type": "string",
            "title": "Provider"
          },
          "source": {
            "type": "string",
            "title": "Source"
          },
          "channels": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Channels"
          },
          "urls": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Urls"
          }
        },
        "type": "object",
        "required": [
          "status",
          "provider",
          "source",
          "channels",
          "urls"
        ],
        "title": "EspForwardConnectResponse"
      },
      "EspIntegration": {
        "properties": {
          "provider": {
            "type": "string",
            "title": "Provider"
          },
          "label": {
            "type": "string",
            "title": "Label"
          },
          "source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source"
          },
          "provider_email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider Email"
          },
          "is_active": {
            "type": "boolean",
            "title": "Is Active"
          },
          "connected_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Connected At"
          },
          "last_used_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Used At"
          },
          "webhook_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Webhook Status"
          },
          "channels_active": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Channels Active",
            "default": []
          },
          "urls": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Urls"
          }
        },
        "type": "object",
        "required": [
          "provider",
          "label",
          "is_active"
        ],
        "title": "EspIntegration"
      },
      "EspProvider": {
        "properties": {
          "provider": {
            "type": "string",
            "title": "Provider"
          },
          "channel_type": {
            "type": "string",
            "title": "Channel Type"
          },
          "domains": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Domains"
          }
        },
        "type": "object",
        "required": [
          "provider",
          "channel_type",
          "domains"
        ],
        "title": "EspProvider"
      },
      "EspProvidersResponse": {
        "properties": {
          "providers": {
            "items": {
              "$ref": "#/components/schemas/EspProvider"
            },
            "type": "array",
            "title": "Providers"
          }
        },
        "type": "object",
        "required": [
          "providers"
        ],
        "title": "EspProvidersResponse"
      },
      "EspQuotaResponse": {
        "properties": {
          "period": {
            "type": "string",
            "title": "Period"
          },
          "used": {
            "type": "integer",
            "title": "Used"
          },
          "limit": {
            "type": "integer",
            "title": "Limit"
          },
          "pct": {
            "type": "integer",
            "title": "Pct"
          },
          "resets_at": {
            "type": "string",
            "title": "Resets At"
          },
          "has_esp": {
            "type": "boolean",
            "title": "Has Esp"
          }
        },
        "type": "object",
        "required": [
          "period",
          "used",
          "limit",
          "pct",
          "resets_at",
          "has_esp"
        ],
        "title": "EspQuotaResponse"
      },
      "EspSenderIdentity": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "provider": {
            "type": "string",
            "title": "Provider"
          },
          "channel_type": {
            "type": "string",
            "title": "Channel Type"
          },
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "sender_email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sender Email"
          },
          "display_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Display Name"
          },
          "esp_verified": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Esp Verified"
          },
          "esp_dkim_enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Esp Dkim Enabled"
          },
          "esp_spf_enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Esp Spf Enabled"
          },
          "esp_dkim_selectors": {
            "title": "Esp Dkim Selectors"
          },
          "dns_spf_valid": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dns Spf Valid"
          },
          "dns_dmarc_policy": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dns Dmarc Policy"
          },
          "dns_dkim_found": {
            "title": "Dns Dkim Found"
          },
          "dns_checked_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dns Checked At"
          },
          "account_domain_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Account Domain Id"
          },
          "discovered_at": {
            "type": "string",
            "format": "date-time",
            "title": "Discovered At"
          },
          "last_synced_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Synced At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "provider",
          "channel_type",
          "domain",
          "discovered_at"
        ],
        "title": "EspSenderIdentity"
      },
      "EspStatusResponse": {
        "properties": {
          "status": {
            "type": "string",
            "title": "Status"
          },
          "provider": {
            "type": "string",
            "title": "Provider"
          }
        },
        "type": "object",
        "required": [
          "status",
          "provider"
        ],
        "title": "EspStatusResponse"
      },
      "EspTimeseriesResponse": {
        "properties": {
          "rows": {
            "items": {
              "$ref": "#/components/schemas/EspTimeseriesRow"
            },
            "type": "array",
            "title": "Rows"
          },
          "group_by": {
            "type": "string",
            "title": "Group By"
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value"
          },
          "available_columns": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Available Columns"
          },
          "engagement_available": {
            "type": "boolean",
            "title": "Engagement Available"
          },
          "date_from": {
            "type": "string",
            "title": "Date From"
          },
          "date_to": {
            "type": "string",
            "title": "Date To"
          }
        },
        "type": "object",
        "required": [
          "rows",
          "group_by",
          "available_columns",
          "engagement_available",
          "date_from",
          "date_to"
        ],
        "title": "EspTimeseriesResponse"
      },
      "EspTimeseriesRow": {
        "properties": {
          "sent": {
            "type": "integer",
            "title": "Sent",
            "default": 0
          },
          "delivered": {
            "type": "integer",
            "title": "Delivered",
            "default": 0
          },
          "hard_bounces": {
            "type": "integer",
            "title": "Hard Bounces",
            "default": 0
          },
          "soft_bounces": {
            "type": "integer",
            "title": "Soft Bounces",
            "default": 0
          },
          "spam_reports": {
            "type": "integer",
            "title": "Spam Reports",
            "default": 0
          },
          "blocked": {
            "type": "integer",
            "title": "Blocked",
            "default": 0
          },
          "deferred": {
            "type": "integer",
            "title": "Deferred",
            "default": 0
          },
          "opens": {
            "type": "integer",
            "title": "Opens",
            "default": 0
          },
          "clicks": {
            "type": "integer",
            "title": "Clicks",
            "default": 0
          },
          "unsubscribes": {
            "type": "integer",
            "title": "Unsubscribes",
            "default": 0
          },
          "unique_opens": {
            "type": "integer",
            "title": "Unique Opens",
            "default": 0
          },
          "unique_clicks": {
            "type": "integer",
            "title": "Unique Clicks",
            "default": 0
          },
          "opens_proxied": {
            "type": "integer",
            "title": "Opens Proxied",
            "default": 0
          },
          "opens_mpp": {
            "type": "integer",
            "title": "Opens Mpp",
            "default": 0
          },
          "opens_nhi": {
            "type": "integer",
            "title": "Opens Nhi",
            "default": 0
          },
          "clicks_nhi": {
            "type": "integer",
            "title": "Clicks Nhi",
            "default": 0
          },
          "date": {
            "type": "string",
            "title": "Date"
          }
        },
        "type": "object",
        "required": [
          "date"
        ],
        "title": "EspTimeseriesRow"
      },
      "GlobalBlock": {
        "properties": {
          "score": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score"
          },
          "trend_30d": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Trend 30D"
          },
          "verdict": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verdict"
          },
          "assets_count": {
            "type": "integer",
            "title": "Assets Count"
          },
          "attention_count": {
            "type": "integer",
            "title": "Attention Count"
          },
          "crisis": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CrisisRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "assets_count",
          "attention_count"
        ],
        "title": "GlobalBlock"
      },
      "GptConnection": {
        "properties": {
          "provider_email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider Email"
          },
          "connected_at": {
            "type": "string",
            "title": "Connected At"
          }
        },
        "type": "object",
        "required": [
          "connected_at"
        ],
        "title": "GptConnection"
      },
      "GptDomain": {
        "properties": {
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "gpt_linked": {
            "type": "boolean",
            "title": "Gpt Linked"
          },
          "local_domain_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Local Domain Id"
          }
        },
        "type": "object",
        "required": [
          "domain",
          "status",
          "gpt_linked"
        ],
        "title": "GptDomain"
      },
      "GptDomainsResponse": {
        "properties": {
          "domains": {
            "items": {
              "$ref": "#/components/schemas/GptDomain"
            },
            "type": "array",
            "title": "Domains"
          },
          "quota": {
            "$ref": "#/components/schemas/GptQuota"
          }
        },
        "type": "object",
        "required": [
          "domains",
          "quota"
        ],
        "title": "GptDomainsResponse"
      },
      "GptLinkDomainResponse": {
        "properties": {
          "status": {
            "type": "string",
            "title": "Status"
          },
          "domain_id": {
            "type": "integer",
            "title": "Domain Id"
          },
          "created": {
            "type": "boolean",
            "title": "Created"
          }
        },
        "type": "object",
        "required": [
          "status",
          "domain_id",
          "created"
        ],
        "title": "GptLinkDomainResponse"
      },
      "GptQuota": {
        "properties": {
          "used": {
            "type": "integer",
            "title": "Used"
          },
          "max": {
            "type": "integer",
            "title": "Max"
          },
          "remaining": {
            "type": "integer",
            "title": "Remaining"
          }
        },
        "type": "object",
        "required": [
          "used",
          "max",
          "remaining"
        ],
        "title": "GptQuota"
      },
      "GptStatPoint": {
        "properties": {
          "collected_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Collected At"
          },
          "stat_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stat Date"
          },
          "compliance": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Compliance"
          },
          "compliance_items": {
            "items": {},
            "type": "array",
            "title": "Compliance Items",
            "default": []
          },
          "spam_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Spam Rate"
          },
          "spf_success_ratio": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Spf Success Ratio"
          },
          "dkim_success_ratio": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dkim Success Ratio"
          },
          "dmarc_success_ratio": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dmarc Success Ratio"
          },
          "outbound_encryption_ratio": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Outbound Encryption Ratio"
          },
          "inbound_encryption_ratio": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Inbound Encryption Ratio"
          }
        },
        "type": "object",
        "title": "GptStatPoint"
      },
      "GroupListResponse": {
        "properties": {
          "groups": {
            "items": {
              "$ref": "#/components/schemas/GroupResponse"
            },
            "type": "array",
            "title": "Groups"
          },
          "limit": {
            "type": "integer",
            "title": "Limit"
          },
          "active_count": {
            "type": "integer",
            "title": "Active Count"
          }
        },
        "type": "object",
        "required": [
          "groups",
          "limit",
          "active_count"
        ],
        "title": "GroupListResponse"
      },
      "GroupMembersRequest": {
        "properties": {
          "domains": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Domains",
            "default": []
          },
          "ips": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Ips",
            "default": []
          }
        },
        "type": "object",
        "title": "GroupMembersRequest"
      },
      "GroupPatchRequest": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Active"
          }
        },
        "type": "object",
        "title": "GroupPatchRequest"
      },
      "GroupRequest": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "GroupRequest"
      },
      "GroupResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "is_active": {
            "type": "boolean",
            "title": "Is Active"
          },
          "domains_count": {
            "type": "integer",
            "title": "Domains Count"
          },
          "ips_count": {
            "type": "integer",
            "title": "Ips Count"
          },
          "total_count": {
            "type": "integer",
            "title": "Total Count"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "is_active",
          "domains_count",
          "ips_count",
          "total_count"
        ],
        "title": "GroupResponse"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "HealthCardAction": {
        "properties": {
          "category": {
            "type": "string",
            "title": "Category"
          },
          "item": {
            "type": "string",
            "title": "Item"
          },
          "label": {
            "type": "string",
            "title": "Label"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "gain": {
            "type": "number",
            "title": "Gain"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          }
        },
        "type": "object",
        "required": [
          "category",
          "item",
          "label",
          "status",
          "gain"
        ],
        "title": "HealthCardAction"
      },
      "HealthCardCategory": {
        "properties": {
          "key": {
            "type": "string",
            "title": "Key"
          },
          "label": {
            "type": "string",
            "title": "Label"
          },
          "score": {
            "type": "number",
            "title": "Score"
          },
          "max": {
            "type": "number",
            "title": "Max"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/HealthCardItem"
            },
            "type": "array",
            "title": "Items"
          }
        },
        "type": "object",
        "required": [
          "key",
          "label",
          "score",
          "max",
          "items"
        ],
        "title": "HealthCardCategory"
      },
      "HealthCardItem": {
        "properties": {
          "key": {
            "type": "string",
            "title": "Key"
          },
          "label": {
            "type": "string",
            "title": "Label"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "score": {
            "type": "number",
            "title": "Score"
          },
          "max": {
            "type": "number",
            "title": "Max"
          },
          "value": {
            "title": "Value"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          },
          "details": {
            "additionalProperties": true,
            "type": "object",
            "title": "Details",
            "default": {}
          },
          "rec_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rec Key"
          },
          "summary_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary Key"
          },
          "summary_params": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary Params"
          }
        },
        "type": "object",
        "required": [
          "key",
          "label",
          "status",
          "score",
          "max"
        ],
        "title": "HealthCardItem"
      },
      "HealthResponse": {
        "properties": {
          "status": {
            "type": "string",
            "title": "Status"
          },
          "components": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Components"
          }
        },
        "type": "object",
        "required": [
          "status",
          "components"
        ],
        "title": "HealthResponse"
      },
      "HealthScorePoint": {
        "properties": {
          "scored_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scored At"
          },
          "overall": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Overall"
          },
          "crisis": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Crisis"
          },
          "rbl": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rbl"
          },
          "senderscore": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Senderscore"
          }
        },
        "type": "object",
        "title": "HealthScorePoint"
      },
      "ImagesAccessibilityInfo": {
        "properties": {
          "total_images": {
            "type": "integer",
            "title": "Total Images",
            "default": 0
          },
          "missing_alt": {
            "type": "integer",
            "title": "Missing Alt",
            "default": 0
          },
          "missing_alt_ratio": {
            "type": "number",
            "title": "Missing Alt Ratio",
            "default": 0.0
          },
          "empty_alt": {
            "type": "integer",
            "title": "Empty Alt",
            "default": 0
          },
          "cta_image_only": {
            "type": "integer",
            "title": "Cta Image Only",
            "default": 0
          },
          "residual_words": {
            "type": "integer",
            "title": "Residual Words",
            "default": 0
          },
          "grade": {
            "type": "string",
            "title": "Grade",
            "default": "unknown"
          },
          "readable_without_images": {
            "type": "boolean",
            "title": "Readable Without Images",
            "default": true
          }
        },
        "type": "object",
        "title": "ImagesAccessibilityInfo"
      },
      "ImpactInfo": {
        "properties": {
          "desktop": {
            "$ref": "#/components/schemas/ImpactProfileInfo",
            "default": {
              "score": 0,
              "focus": 0.0,
              "breathing": 0.0,
              "reading": 0.0,
              "above_fold": false,
              "cta_count": 0,
              "avg_font_size_px": 0.0,
              "min_font_size_px": 0.0,
              "contrast_pass_ratio": 1.0,
              "contrast_avg_ratio": 0.0,
              "contrast_failures": 0,
              "contrast_grade": "unknown",
              "contrast_failing_samples": []
            }
          },
          "mobile": {
            "$ref": "#/components/schemas/ImpactProfileInfo",
            "default": {
              "score": 0,
              "focus": 0.0,
              "breathing": 0.0,
              "reading": 0.0,
              "above_fold": false,
              "cta_count": 0,
              "avg_font_size_px": 0.0,
              "min_font_size_px": 0.0,
              "contrast_pass_ratio": 1.0,
              "contrast_avg_ratio": 0.0,
              "contrast_failures": 0,
              "contrast_grade": "unknown",
              "contrast_failing_samples": []
            }
          },
          "reading_score": {
            "type": "number",
            "title": "Reading Score",
            "default": 0.0
          }
        },
        "type": "object",
        "title": "ImpactInfo"
      },
      "ImpactProfileInfo": {
        "properties": {
          "score": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Score",
            "default": 0
          },
          "focus": {
            "type": "number",
            "title": "Focus",
            "default": 0.0
          },
          "breathing": {
            "type": "number",
            "title": "Breathing",
            "default": 0.0
          },
          "reading": {
            "type": "number",
            "title": "Reading",
            "default": 0.0
          },
          "above_fold": {
            "type": "boolean",
            "title": "Above Fold",
            "default": false
          },
          "cta_count": {
            "type": "integer",
            "title": "Cta Count",
            "default": 0
          },
          "avg_font_size_px": {
            "type": "number",
            "title": "Avg Font Size Px",
            "default": 0.0
          },
          "min_font_size_px": {
            "type": "number",
            "title": "Min Font Size Px",
            "default": 0.0
          },
          "contrast_pass_ratio": {
            "type": "number",
            "title": "Contrast Pass Ratio",
            "default": 1.0
          },
          "contrast_avg_ratio": {
            "type": "number",
            "title": "Contrast Avg Ratio",
            "default": 0.0
          },
          "contrast_failures": {
            "type": "integer",
            "title": "Contrast Failures",
            "default": 0
          },
          "contrast_grade": {
            "type": "string",
            "title": "Contrast Grade",
            "default": "unknown"
          },
          "contrast_failing_samples": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Contrast Failing Samples"
          }
        },
        "type": "object",
        "title": "ImpactProfileInfo"
      },
      "InitiateIpRequest": {
        "properties": {
          "ip_value": {
            "type": "string",
            "title": "Ip Value"
          },
          "method": {
            "type": "string",
            "title": "Method"
          },
          "target": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target"
          },
          "scope": {
            "type": "string",
            "title": "Scope",
            "default": "ptr"
          },
          "lang": {
            "type": "string",
            "title": "Lang",
            "default": "en"
          }
        },
        "type": "object",
        "required": [
          "ip_value",
          "method"
        ],
        "title": "InitiateIpRequest"
      },
      "InitiateRequest": {
        "properties": {
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "method": {
            "type": "string",
            "title": "Method"
          },
          "target": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target"
          },
          "lang": {
            "type": "string",
            "title": "Lang",
            "default": "en"
          }
        },
        "type": "object",
        "required": [
          "domain",
          "method"
        ],
        "title": "InitiateRequest"
      },
      "IntegrationsStatusResponse": {
        "properties": {
          "gpt_available": {
            "type": "boolean",
            "title": "Gpt Available"
          },
          "gpt_connected": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/GptConnection"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "gpt_available"
        ],
        "title": "IntegrationsStatusResponse"
      },
      "IpDnsTargets": {
        "properties": {
          "ptr": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Ptr"
          },
          "root": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Root"
          }
        },
        "type": "object",
        "required": [
          "ptr",
          "root"
        ],
        "title": "IpDnsTargets"
      },
      "IpEmailTargets": {
        "properties": {
          "postmaster": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Postmaster"
          },
          "abuse": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Abuse"
          },
          "contact": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Contact"
          },
          "support": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Support"
          },
          "admin": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Admin"
          }
        },
        "type": "object",
        "required": [
          "postmaster",
          "abuse",
          "contact",
          "support",
          "admin"
        ],
        "title": "IpEmailTargets"
      },
      "IpHealthCardResponse": {
        "properties": {
          "overall": {
            "type": "integer",
            "title": "Overall"
          },
          "max": {
            "type": "integer",
            "title": "Max"
          },
          "crisis": {
            "type": "boolean",
            "title": "Crisis"
          },
          "categories": {
            "items": {
              "$ref": "#/components/schemas/HealthCardCategory"
            },
            "type": "array",
            "title": "Categories"
          },
          "actions": {
            "items": {
              "$ref": "#/components/schemas/HealthCardAction"
            },
            "type": "array",
            "title": "Actions"
          },
          "sparkline": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Sparkline"
          },
          "ip_value": {
            "type": "string",
            "title": "Ip Value"
          },
          "input_type": {
            "type": "string",
            "title": "Input Type"
          },
          "ip_count": {
            "type": "integer",
            "title": "Ip Count"
          },
          "ptr_map": {
            "title": "Ptr Map"
          },
          "root_domains": {
            "title": "Root Domains"
          }
        },
        "type": "object",
        "required": [
          "overall",
          "max",
          "crisis",
          "categories",
          "actions",
          "sparkline",
          "ip_value",
          "input_type",
          "ip_count"
        ],
        "title": "IpHealthCardResponse"
      },
      "IpHealthHistoryResponse": {
        "properties": {
          "current_score": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Score"
          },
          "history": {
            "items": {
              "$ref": "#/components/schemas/HealthScorePoint"
            },
            "type": "array",
            "title": "History"
          }
        },
        "type": "object",
        "required": [
          "history"
        ],
        "title": "IpHealthHistoryResponse"
      },
      "IpMonitoringToggleResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "is_active": {
            "type": "boolean",
            "title": "Is Active"
          }
        },
        "type": "object",
        "required": [
          "id",
          "is_active"
        ],
        "title": "IpMonitoringToggleResponse"
      },
      "IpPreviewResponse": {
        "properties": {
          "ip_value": {
            "type": "string",
            "title": "Ip Value"
          },
          "input_type": {
            "type": "string",
            "title": "Input Type"
          },
          "ip_count": {
            "type": "integer",
            "title": "Ip Count"
          },
          "ptr_hostnames": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Ptr Hostnames"
          },
          "root_domains": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Root Domains"
          },
          "ptr_map": {
            "title": "Ptr Map"
          },
          "is_multi": {
            "type": "boolean",
            "title": "Is Multi"
          },
          "dns_targets": {
            "$ref": "#/components/schemas/IpDnsTargets"
          },
          "email_targets": {
            "$ref": "#/components/schemas/IpVerificationTargets"
          }
        },
        "type": "object",
        "required": [
          "ip_value",
          "input_type",
          "ip_count",
          "ptr_hostnames",
          "root_domains",
          "is_multi",
          "dns_targets",
          "email_targets"
        ],
        "title": "IpPreviewResponse"
      },
      "IpQuotaResponse": {
        "properties": {
          "monitored_ips_used": {
            "type": "integer",
            "title": "Monitored Ips Used"
          },
          "monitored_ips_total": {
            "type": "integer",
            "title": "Monitored Ips Total"
          },
          "monitored_ips_limit": {
            "type": "integer",
            "title": "Monitored Ips Limit"
          }
        },
        "type": "object",
        "required": [
          "monitored_ips_used",
          "monitored_ips_total",
          "monitored_ips_limit"
        ],
        "title": "IpQuotaResponse"
      },
      "IpResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "ip_value": {
            "type": "string",
            "title": "Ip Value"
          },
          "input_type": {
            "type": "string",
            "title": "Input Type"
          },
          "ip_count": {
            "type": "integer",
            "title": "Ip Count"
          },
          "root_domains": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Root Domains"
          },
          "ptr_map": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ptr Map"
          },
          "verification_method": {
            "type": "string",
            "title": "Verification Method"
          },
          "verification_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verification Token"
          },
          "verification_hosts": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verification Hosts"
          },
          "is_verified": {
            "type": "boolean",
            "title": "Is Verified"
          },
          "is_active": {
            "type": "boolean",
            "title": "Is Active"
          },
          "verified_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verified At"
          },
          "created_at": {
            "type": "string",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "ip_value",
          "input_type",
          "ip_count",
          "root_domains",
          "ptr_map",
          "verification_method",
          "verification_token",
          "verification_hosts",
          "is_verified",
          "is_active",
          "verified_at",
          "created_at"
        ],
        "title": "IpResponse"
      },
      "IpVerificationTargets": {
        "properties": {
          "ptr": {
            "$ref": "#/components/schemas/IpEmailTargets"
          },
          "root": {
            "$ref": "#/components/schemas/IpEmailTargets"
          }
        },
        "type": "object",
        "required": [
          "ptr",
          "root"
        ],
        "title": "IpVerificationTargets"
      },
      "KpiBlock": {
        "properties": {
          "critical_actions": {
            "type": "integer",
            "title": "Critical Actions"
          },
          "dmarc_pass_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dmarc Pass Rate"
          },
          "esp_bounce_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Esp Bounce Rate"
          },
          "esp_spam_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Esp Spam Rate"
          }
        },
        "type": "object",
        "required": [
          "critical_actions"
        ],
        "title": "KpiBlock"
      },
      "MonitoredHostEntry": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "host_value": {
            "type": "string",
            "title": "Host Value"
          },
          "is_active": {
            "type": "boolean",
            "title": "Is Active"
          },
          "types": {
            "items": {
              "$ref": "#/components/schemas/MonitoredHostTypeEntry"
            },
            "type": "array",
            "title": "Types"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "host_value",
          "is_active",
          "types"
        ],
        "title": "MonitoredHostEntry"
      },
      "MonitoredHostTypeEntry": {
        "properties": {
          "host_type": {
            "type": "string",
            "title": "Host Type"
          },
          "discovered_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discovered By"
          }
        },
        "type": "object",
        "required": [
          "host_type"
        ],
        "title": "MonitoredHostTypeEntry"
      },
      "MonitoredItemToggleResponse": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "is_active": {
            "type": "boolean",
            "title": "Is Active"
          }
        },
        "type": "object",
        "required": [
          "id",
          "is_active"
        ],
        "title": "MonitoredItemToggleResponse"
      },
      "MonitoredItemsResponse": {
        "properties": {
          "hosts": {
            "items": {
              "$ref": "#/components/schemas/MonitoredHostEntry"
            },
            "type": "array",
            "title": "Hosts"
          }
        },
        "type": "object",
        "required": [
          "hosts"
        ],
        "title": "MonitoredItemsResponse"
      },
      "MonitoringScanResponse": {
        "properties": {
          "status": {
            "type": "string",
            "title": "Status"
          }
        },
        "type": "object",
        "required": [
          "status"
        ],
        "title": "MonitoringScanResponse"
      },
      "ObjectGroupsRequest": {
        "properties": {
          "groups": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Groups",
            "default": []
          }
        },
        "type": "object",
        "title": "ObjectGroupsRequest"
      },
      "ObjectGroupsResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "groups": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Groups"
          }
        },
        "type": "object",
        "required": [
          "id",
          "groups"
        ],
        "title": "ObjectGroupsResponse"
      },
      "OverviewResponse": {
        "properties": {
          "global": {
            "$ref": "#/components/schemas/GlobalBlock"
          },
          "kpis": {
            "$ref": "#/components/schemas/KpiBlock"
          },
          "actions": {
            "items": {
              "$ref": "#/components/schemas/ActionItem"
            },
            "type": "array",
            "title": "Actions"
          },
          "activity": {
            "items": {
              "$ref": "#/components/schemas/backend__api__routers__overview__ActivityItem"
            },
            "type": "array",
            "title": "Activity"
          },
          "assets": {
            "items": {
              "$ref": "#/components/schemas/AssetItem"
            },
            "type": "array",
            "title": "Assets"
          },
          "sources": {
            "$ref": "#/components/schemas/SourcesBlock"
          }
        },
        "type": "object",
        "required": [
          "global",
          "kpis",
          "actions",
          "activity",
          "assets",
          "sources"
        ],
        "title": "OverviewResponse"
      },
      "PreviewIpRequest": {
        "properties": {
          "ip_value": {
            "type": "string",
            "title": "Ip Value"
          }
        },
        "type": "object",
        "required": [
          "ip_value"
        ],
        "title": "PreviewIpRequest"
      },
      "RBLInfo": {
        "properties": {
          "listed_count": {
            "type": "integer",
            "title": "Listed Count"
          },
          "total_checked": {
            "type": "integer",
            "title": "Total Checked"
          },
          "listings": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Listings"
          }
        },
        "type": "object",
        "required": [
          "listed_count",
          "total_checked",
          "listings"
        ],
        "title": "RBLInfo"
      },
      "RecommendationResponse": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Domain"
          },
          "rule_id": {
            "type": "string",
            "title": "Rule Id"
          },
          "severity": {
            "type": "string",
            "title": "Severity"
          },
          "category": {
            "type": "string",
            "title": "Category"
          },
          "action_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Action Url"
          },
          "evidence_json": {
            "title": "Evidence Json"
          },
          "confidence": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confidence"
          },
          "correlation_r": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Correlation R"
          },
          "lag_days_observed": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lag Days Observed"
          },
          "detected_at": {
            "type": "string",
            "format": "date-time",
            "title": "Detected At"
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "dismissed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dismissed At"
          },
          "resolved_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolved At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "rule_id",
          "severity",
          "category",
          "detected_at"
        ],
        "title": "RecommendationResponse"
      },
      "ReputationInfo": {
        "properties": {
          "rbl": {
            "$ref": "#/components/schemas/RBLInfo"
          },
          "abuseipdb": {
            "additionalProperties": true,
            "type": "object",
            "title": "Abuseipdb"
          },
          "senderscore": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Senderscore"
          },
          "ip_reputation": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ip Reputation"
          }
        },
        "type": "object",
        "required": [
          "rbl",
          "abuseipdb"
        ],
        "title": "ReputationInfo"
      },
      "ResolvedResponse": {
        "properties": {
          "resolved": {
            "type": "boolean",
            "title": "Resolved"
          }
        },
        "type": "object",
        "required": [
          "resolved"
        ],
        "title": "ResolvedResponse"
      },
      "SPFResult": {
        "properties": {
          "result": {
            "type": "string",
            "title": "Result"
          },
          "mechanism": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mechanism"
          },
          "details": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Details"
          },
          "record": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Record"
          },
          "authoritative_record": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Authoritative Record"
          },
          "domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Domain"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Explanation"
          },
          "dns_lookups": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dns Lookups"
          },
          "dns_lookups_warning": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dns Lookups Warning"
          },
          "failure_detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Failure Detail"
          }
        },
        "type": "object",
        "required": [
          "result"
        ],
        "title": "SPFResult"
      },
      "SaliencyInfo": {
        "properties": {
          "heatmap_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Heatmap Url"
          },
          "heatmap_url_mobile": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Heatmap Url Mobile"
          },
          "available": {
            "type": "boolean",
            "title": "Available",
            "default": false
          },
          "impact": {
            "$ref": "#/components/schemas/ImpactInfo",
            "default": {
              "desktop": {
                "above_fold": false,
                "avg_font_size_px": 0.0,
                "breathing": 0.0,
                "contrast_avg_ratio": 0.0,
                "contrast_failing_samples": [],
                "contrast_failures": 0,
                "contrast_grade": "unknown",
                "contrast_pass_ratio": 1.0,
                "cta_count": 0,
                "focus": 0.0,
                "min_font_size_px": 0.0,
                "reading": 0.0,
                "score": 0
              },
              "mobile": {
                "above_fold": false,
                "avg_font_size_px": 0.0,
                "breathing": 0.0,
                "contrast_avg_ratio": 0.0,
                "contrast_failing_samples": [],
                "contrast_failures": 0,
                "contrast_grade": "unknown",
                "contrast_pass_ratio": 1.0,
                "cta_count": 0,
                "focus": 0.0,
                "min_font_size_px": 0.0,
                "reading": 0.0,
                "score": 0
              },
              "reading_score": 0.0
            }
          },
          "gated": {
            "type": "boolean",
            "title": "Gated",
            "default": false
          }
        },
        "type": "object",
        "title": "SaliencyInfo"
      },
      "ScanCreate": {
        "properties": {
          "is_async": {
            "type": "boolean",
            "title": "Is Async",
            "description": "Is this an async scan for validated domain",
            "default": false
          },
          "altcha_payload": {
            "type": "string",
            "title": "Altcha Payload",
            "description": "Altcha PoW solution (JSON string) - required unless using API key auth",
            "default": ""
          }
        },
        "type": "object",
        "title": "ScanCreate"
      },
      "ScanItem": {
        "properties": {
          "email_address": {
            "type": "string",
            "title": "Email Address"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "overall_score": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Overall Score"
          },
          "interpersonal_score": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interpersonal Score"
          },
          "email_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email Type"
          },
          "email_type_override": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email Type Override"
          },
          "from_header": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "From Header"
          },
          "subject": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subject"
          },
          "spam_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Spam Score"
          },
          "created_at": {
            "type": "string",
            "title": "Created At"
          },
          "processed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Processed At"
          }
        },
        "type": "object",
        "required": [
          "email_address",
          "status",
          "created_at"
        ],
        "title": "ScanItem"
      },
      "ScanResponse": {
        "properties": {
          "local_part": {
            "type": "string",
            "title": "Local Part"
          },
          "email_address": {
            "type": "string",
            "format": "email",
            "title": "Email Address"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "processing",
              "completed",
              "failed"
            ],
            "title": "Status"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "received_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Received At"
          },
          "processed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Processed At"
          },
          "processing_time_ms": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Processing Time Ms"
          },
          "view_count": {
            "type": "integer",
            "title": "View Count",
            "default": 0
          }
        },
        "type": "object",
        "required": [
          "local_part",
          "email_address",
          "status",
          "created_at"
        ],
        "title": "ScanResponse"
      },
      "ScanResultResponse": {
        "properties": {
          "version": {
            "type": "string",
            "title": "Version",
            "default": "1.0"
          },
          "scan_id": {
            "type": "string",
            "title": "Scan Id"
          },
          "status": {
            "type": "string",
            "enum": [
              "completed",
              "processing",
              "failed"
            ],
            "title": "Status"
          },
          "timestamps": {
            "additionalProperties": true,
            "type": "object",
            "title": "Timestamps"
          },
          "scores": {
            "$ref": "#/components/schemas/ScoreInfo"
          },
          "email": {
            "$ref": "#/components/schemas/EmailInfo"
          },
          "server": {
            "$ref": "#/components/schemas/ServerInfo"
          },
          "authentication": {
            "$ref": "#/components/schemas/AuthenticationInfo"
          },
          "security": {
            "$ref": "#/components/schemas/SecurityInfo"
          },
          "reputation": {
            "$ref": "#/components/schemas/ReputationInfo"
          },
          "content": {
            "$ref": "#/components/schemas/ContentAnalysisInfo"
          },
          "email_preview": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/EmailPreview"
              },
              {
                "type": "null"
              }
            ]
          },
          "header_analysis": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Header Analysis"
          }
        },
        "type": "object",
        "required": [
          "scan_id",
          "status",
          "timestamps",
          "scores",
          "email",
          "server",
          "authentication",
          "security",
          "reputation",
          "content"
        ],
        "title": "ScanResultResponse"
      },
      "ScanUsageResponse": {
        "properties": {
          "scans_used_today": {
            "type": "integer",
            "title": "Scans Used Today"
          },
          "scans_limit": {
            "type": "integer",
            "title": "Scans Limit"
          },
          "scans_remaining": {
            "type": "integer",
            "title": "Scans Remaining"
          }
        },
        "type": "object",
        "required": [
          "scans_used_today",
          "scans_limit",
          "scans_remaining"
        ],
        "title": "ScanUsageResponse"
      },
      "ScoreCertificate": {
        "properties": {
          "token": {
            "type": "string",
            "title": "Token"
          },
          "avg_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avg Score"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          }
        },
        "type": "object",
        "required": [
          "token"
        ],
        "title": "ScoreCertificate"
      },
      "ScoreInfo": {
        "properties": {
          "overall": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Overall"
          },
          "interpersonal": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 100.0,
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Interpersonal"
          },
          "email_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email Type"
          },
          "email_type_override": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email Type Override"
          },
          "qualification_details": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Qualification Details"
          },
          "spam": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Spam"
          },
          "reputation": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reputation"
          },
          "breakdown": {
            "items": {},
            "type": "array",
            "title": "Breakdown"
          },
          "breakdown_interpersonal": {
            "items": {},
            "type": "array",
            "title": "Breakdown Interpersonal"
          }
        },
        "type": "object",
        "required": [
          "overall"
        ],
        "title": "ScoreInfo"
      },
      "SecurityInfo": {
        "properties": {
          "encryption": {
            "$ref": "#/components/schemas/EncryptionInfo"
          },
          "tracking": {
            "additionalProperties": true,
            "type": "object",
            "title": "Tracking"
          }
        },
        "type": "object",
        "required": [
          "encryption",
          "tracking"
        ],
        "title": "SecurityInfo"
      },
      "SenderPatchRequest": {
        "properties": {
          "user_role": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Role"
          },
          "user_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Label"
          },
          "user_notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Notes"
          }
        },
        "type": "object",
        "title": "SenderPatchRequest"
      },
      "ServerInfo": {
        "properties": {
          "ip": {
            "type": "string",
            "title": "Ip"
          },
          "hostname": {
            "type": "string",
            "title": "Hostname"
          },
          "ehlo": {
            "type": "string",
            "title": "Ehlo"
          },
          "protocol": {
            "type": "string",
            "title": "Protocol"
          }
        },
        "type": "object",
        "required": [
          "ip",
          "hostname",
          "ehlo",
          "protocol"
        ],
        "title": "ServerInfo"
      },
      "SourcesBlock": {
        "properties": {
          "connected": {
            "type": "integer",
            "title": "Connected"
          },
          "total": {
            "type": "integer",
            "title": "Total"
          },
          "precision": {
            "type": "string",
            "title": "Precision"
          },
          "items": {
            "additionalProperties": {
              "type": "boolean"
            },
            "type": "object",
            "title": "Items"
          }
        },
        "type": "object",
        "required": [
          "connected",
          "total",
          "precision",
          "items"
        ],
        "title": "SourcesBlock"
      },
      "SpamCheckResult": {
        "properties": {
          "score": {
            "type": "number",
            "title": "Score"
          },
          "threshold": {
            "type": "number",
            "title": "Threshold"
          },
          "tests": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Tests",
            "default": []
          }
        },
        "type": "object",
        "required": [
          "score",
          "threshold"
        ],
        "title": "SpamCheckResult"
      },
      "SpfAdvisorResponse": {
        "properties": {
          "spf_record": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Spf Record"
          },
          "total_lookups": {
            "type": "integer",
            "title": "Total Lookups"
          },
          "max_lookups": {
            "type": "integer",
            "title": "Max Lookups"
          },
          "lookup_savings_possible": {
            "type": "integer",
            "title": "Lookup Savings Possible"
          },
          "optimized_record": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Optimized Record"
          },
          "optimized_savings": {
            "type": "integer",
            "title": "Optimized Savings"
          },
          "mechanisms": {
            "items": {
              "$ref": "#/components/schemas/SpfMechanism"
            },
            "type": "array",
            "title": "Mechanisms"
          },
          "recommendations": {
            "items": {
              "$ref": "#/components/schemas/SpfRecommendation"
            },
            "type": "array",
            "title": "Recommendations"
          },
          "dmarc_days_available": {
            "type": "integer",
            "title": "Dmarc Days Available"
          },
          "dmarc_msgs_analyzed": {
            "type": "integer",
            "title": "Dmarc Msgs Analyzed"
          },
          "has_sufficient_data": {
            "type": "boolean",
            "title": "Has Sufficient Data"
          },
          "sufficient_data_days": {
            "type": "integer",
            "title": "Sufficient Data Days"
          },
          "days_requested": {
            "type": "integer",
            "title": "Days Requested"
          }
        },
        "type": "object",
        "required": [
          "total_lookups",
          "max_lookups",
          "lookup_savings_possible",
          "optimized_savings",
          "mechanisms",
          "recommendations",
          "dmarc_days_available",
          "dmarc_msgs_analyzed",
          "has_sufficient_data",
          "sufficient_data_days",
          "days_requested"
        ],
        "title": "SpfAdvisorResponse"
      },
      "SpfCidrInfo": {
        "properties": {
          "network_size": {
            "type": "integer",
            "title": "Network Size"
          },
          "used_ips": {
            "type": "integer",
            "title": "Used Ips"
          },
          "ratio": {
            "type": "integer",
            "title": "Ratio"
          }
        },
        "type": "object",
        "required": [
          "network_size",
          "used_ips",
          "ratio"
        ],
        "title": "SpfCidrInfo"
      },
      "SpfMechanism": {
        "properties": {
          "raw": {
            "type": "string",
            "title": "Raw"
          },
          "qualifier": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Qualifier"
          },
          "type": {
            "type": "string",
            "title": "Type"
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value"
          },
          "dns_lookups": {
            "type": "integer",
            "title": "Dns Lookups"
          },
          "networks_count": {
            "type": "integer",
            "title": "Networks Count"
          },
          "resolve_error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolve Error"
          },
          "resolvable": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolvable"
          },
          "void_lookup": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Void Lookup"
          },
          "total_msgs": {
            "type": "integer",
            "title": "Total Msgs"
          },
          "unique_ips": {
            "type": "integer",
            "title": "Unique Ips"
          },
          "services": {
            "title": "Services"
          },
          "cidr_info": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SpfCidrInfo"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          }
        },
        "type": "object",
        "required": [
          "raw",
          "type",
          "dns_lookups",
          "networks_count",
          "total_msgs",
          "unique_ips"
        ],
        "title": "SpfMechanism"
      },
      "SpfRecommendation": {
        "properties": {
          "type": {
            "type": "string",
            "title": "Type"
          },
          "severity": {
            "type": "string",
            "title": "Severity"
          },
          "detail": {
            "additionalProperties": true,
            "type": "object",
            "title": "Detail",
            "default": {}
          }
        },
        "type": "object",
        "required": [
          "type",
          "severity"
        ],
        "title": "SpfRecommendation"
      },
      "StatusResponse": {
        "properties": {
          "status": {
            "type": "string",
            "title": "Status"
          }
        },
        "type": "object",
        "required": [
          "status"
        ],
        "title": "StatusResponse",
        "description": "The plain acknowledgement several actions here answer with."
      },
      "TlsrptAddressResponse": {
        "properties": {
          "tlsrpt_address": {
            "type": "string",
            "title": "Tlsrpt Address"
          },
          "token": {
            "type": "string",
            "title": "Token"
          },
          "txt_record": {
            "type": "string",
            "title": "Txt Record"
          }
        },
        "type": "object",
        "required": [
          "tlsrpt_address",
          "token",
          "txt_record"
        ],
        "title": "TlsrptAddressResponse"
      },
      "TlsrptDay": {
        "properties": {
          "day": {
            "type": "integer",
            "title": "Day"
          },
          "date": {
            "type": "string",
            "title": "Date"
          },
          "success": {
            "type": "integer",
            "title": "Success"
          },
          "failure": {
            "type": "integer",
            "title": "Failure"
          }
        },
        "type": "object",
        "required": [
          "day",
          "date",
          "success",
          "failure"
        ],
        "title": "TlsrptDay"
      },
      "TlsrptFailureDetail": {
        "properties": {
          "result_type": {
            "type": "string",
            "title": "Result Type"
          },
          "sending_mta_ip": {
            "type": "string",
            "title": "Sending Mta Ip"
          },
          "sending_country_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sending Country Code"
          },
          "sending_country_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sending Country Name"
          },
          "receiving_mx_hostname": {
            "type": "string",
            "title": "Receiving Mx Hostname"
          },
          "receiving_ip": {
            "type": "string",
            "title": "Receiving Ip"
          },
          "receiving_country_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Receiving Country Code"
          },
          "receiving_country_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Receiving Country Name"
          },
          "failed_session_count": {
            "type": "integer",
            "title": "Failed Session Count"
          },
          "additional_info": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Additional Info"
          },
          "failure_reason_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Failure Reason Code"
          }
        },
        "type": "object",
        "required": [
          "result_type",
          "sending_mta_ip",
          "receiving_mx_hostname",
          "receiving_ip",
          "failed_session_count"
        ],
        "title": "TlsrptFailureDetail"
      },
      "TlsrptPolicy": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "policy_type": {
            "type": "string",
            "title": "Policy Type"
          },
          "policy_domain": {
            "type": "string",
            "title": "Policy Domain"
          },
          "policy_strings": {
            "title": "Policy Strings"
          },
          "mx_host": {
            "type": "string",
            "title": "Mx Host"
          },
          "total_success_count": {
            "type": "integer",
            "title": "Total Success Count"
          },
          "total_failure_count": {
            "type": "integer",
            "title": "Total Failure Count"
          },
          "failure_details": {
            "items": {
              "$ref": "#/components/schemas/TlsrptFailureDetail"
            },
            "type": "array",
            "title": "Failure Details"
          }
        },
        "type": "object",
        "required": [
          "id",
          "policy_type",
          "policy_domain",
          "mx_host",
          "total_success_count",
          "total_failure_count",
          "failure_details"
        ],
        "title": "TlsrptPolicy"
      },
      "TlsrptReportDetail": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "date_begin": {
            "type": "integer",
            "title": "Date Begin"
          },
          "date_end": {
            "type": "integer",
            "title": "Date End"
          },
          "org_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Org Name"
          },
          "contact_info": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contact Info"
          },
          "report_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Report Id"
          },
          "received_at": {
            "type": "integer",
            "title": "Received At"
          },
          "policies": {
            "items": {
              "$ref": "#/components/schemas/TlsrptPolicy"
            },
            "type": "array",
            "title": "Policies"
          }
        },
        "type": "object",
        "required": [
          "id",
          "domain",
          "date_begin",
          "date_end",
          "received_at",
          "policies"
        ],
        "title": "TlsrptReportDetail"
      },
      "TlsrptReportListResponse": {
        "properties": {
          "total": {
            "type": "integer",
            "title": "Total"
          },
          "reports": {
            "items": {
              "$ref": "#/components/schemas/TlsrptReportSummary"
            },
            "type": "array",
            "title": "Reports"
          },
          "history_days": {
            "type": "integer",
            "title": "History Days"
          }
        },
        "type": "object",
        "required": [
          "total",
          "reports",
          "history_days"
        ],
        "title": "TlsrptReportListResponse"
      },
      "TlsrptReportSummary": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "date_begin": {
            "type": "integer",
            "title": "Date Begin"
          },
          "date_end": {
            "type": "integer",
            "title": "Date End"
          },
          "org_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Org Name"
          },
          "contact_info": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contact Info"
          },
          "report_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Report Id"
          },
          "received_at": {
            "type": "integer",
            "title": "Received At"
          },
          "total_success": {
            "type": "integer",
            "title": "Total Success"
          },
          "total_failure": {
            "type": "integer",
            "title": "Total Failure"
          }
        },
        "type": "object",
        "required": [
          "id",
          "domain",
          "date_begin",
          "date_end",
          "received_at",
          "total_success",
          "total_failure"
        ],
        "title": "TlsrptReportSummary"
      },
      "TlsrptStatsResponse": {
        "properties": {
          "days": {
            "items": {
              "$ref": "#/components/schemas/TlsrptDay"
            },
            "type": "array",
            "title": "Days"
          },
          "domains": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Domains"
          },
          "history_days": {
            "type": "integer",
            "title": "History Days"
          }
        },
        "type": "object",
        "required": [
          "days",
          "domains",
          "history_days"
        ],
        "title": "TlsrptStatsResponse"
      },
      "TlsrptSummaryResponse": {
        "properties": {
          "total_success": {
            "type": "integer",
            "title": "Total Success"
          },
          "total_failure": {
            "type": "integer",
            "title": "Total Failure"
          },
          "success_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Success Rate"
          },
          "top_failures": {
            "items": {
              "$ref": "#/components/schemas/TlsrptTopFailure"
            },
            "type": "array",
            "title": "Top Failures"
          },
          "history_days": {
            "type": "integer",
            "title": "History Days"
          }
        },
        "type": "object",
        "required": [
          "total_success",
          "total_failure",
          "top_failures",
          "history_days"
        ],
        "title": "TlsrptSummaryResponse"
      },
      "TlsrptTopFailure": {
        "properties": {
          "result_type": {
            "type": "string",
            "title": "Result Type"
          },
          "session_count": {
            "type": "integer",
            "title": "Session Count"
          }
        },
        "type": "object",
        "required": [
          "result_type",
          "session_count"
        ],
        "title": "TlsrptTopFailure"
      },
      "TransferResponse": {
        "properties": {
          "status": {
            "type": "string",
            "title": "Status"
          }
        },
        "type": "object",
        "required": [
          "status"
        ],
        "title": "TransferResponse"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "VerifyIpResponse": {
        "properties": {
          "status": {
            "type": "string",
            "title": "Status"
          },
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message"
          }
        },
        "type": "object",
        "required": [
          "status"
        ],
        "title": "VerifyIpResponse"
      },
      "VerifyResponse": {
        "properties": {
          "status": {
            "type": "string",
            "title": "Status"
          },
          "existing_owner_email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Existing Owner Email"
          }
        },
        "type": "object",
        "required": [
          "status"
        ],
        "title": "VerifyResponse"
      },
      "_EmailTypeOverrideBody": {
        "properties": {
          "email_type": {
            "type": "string",
            "title": "Email Type"
          }
        },
        "type": "object",
        "required": [
          "email_type"
        ],
        "title": "_EmailTypeOverrideBody"
      },
      "backend__api__routers__overview__ActivityItem": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "event_date": {
            "type": "string",
            "format": "date",
            "title": "Event Date"
          },
          "domain": {
            "type": "string",
            "title": "Domain"
          },
          "event_type": {
            "type": "string",
            "title": "Event Type"
          },
          "severity": {
            "type": "string",
            "title": "Severity"
          },
          "detail": {
            "title": "Detail"
          }
        },
        "type": "object",
        "required": [
          "id",
          "event_date",
          "domain",
          "event_type",
          "severity"
        ],
        "title": "ActivityItem"
      }
    }
  }
}
