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

from __future__ import annotations
from .serviceid import ServiceID, ServiceIDTypedDict
from .trackedscan_scantarget_hostnameport import (
    TrackedScanScanTargetHostnamePort,
    TrackedScanScanTargetHostnamePortTypedDict,
)
from .trackedscan_scantarget_hostport import (
    TrackedScanScanTargetHostPort,
    TrackedScanScanTargetHostPortTypedDict,
)
from .weborigin import WebOrigin, WebOriginTypedDict
from censys_platform.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class TrackedScanScanTargetTypedDict(TypedDict):
    host_port: NotRequired[TrackedScanScanTargetHostPortTypedDict]
    hostname_port: NotRequired[TrackedScanScanTargetHostnamePortTypedDict]
    service_id: NotRequired[ServiceIDTypedDict]
    web_origin: NotRequired[WebOriginTypedDict]


class TrackedScanScanTarget(BaseModel):
    host_port: Optional[TrackedScanScanTargetHostPort] = None

    hostname_port: Optional[TrackedScanScanTargetHostnamePort] = None

    service_id: Optional[ServiceID] = None

    web_origin: Optional[WebOrigin] = None
