"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from censys_platform.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class HTTPFaviconTypedDict(TypedDict):
    hash_md5: NotRequired[str]
    hash_phash: NotRequired[str]
    r"""A 64-bit 'perceptual' hash of the favicon"""
    hash_sha256: NotRequired[str]
    hash_shodan: NotRequired[int]
    r"""A hash expressed as a signed decimal integer, provided for compatability with Shodan search."""
    name: NotRequired[str]
    r"""The URI used to retrieve the favicon, which most commonly use the http(s) or data schemes. URIs using the data scheme are truncated: the first 48 and last 24 characters are preserved."""
    size: NotRequired[int]
    r"""The size of the favicon retrieved, in bytes."""


class HTTPFavicon(BaseModel):
    hash_md5: Optional[str] = None

    hash_phash: Optional[str] = None
    r"""A 64-bit 'perceptual' hash of the favicon"""

    hash_sha256: Optional[str] = None

    hash_shodan: Optional[int] = None
    r"""A hash expressed as a signed decimal integer, provided for compatability with Shodan search."""

    name: Optional[str] = None
    r"""The URI used to retrieve the favicon, which most commonly use the http(s) or data schemes. URIs using the data scheme are truncated: the first 48 and last 24 characters are preserved."""

    size: Optional[int] = None
    r"""The size of the favicon retrieved, in bytes."""
