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

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


class DNSResourceRecordType(str, Enum):
    r"""An enumerated field indicating what type of data is in the \"services.dns.additionals.response\" field. For example, \"A\" signifies that the value in \"services.dns.additionals.response\" is an IPv4 address for the FQDN in \"services.dns.additionals.name\"."""

    UNKNOWN = ""
    A = "a"
    TXT = "txt"
    NS = "ns"


class DNSResourceRecordTypedDict(TypedDict):
    name: NotRequired[str]
    r"""The Fully Qualified Domain Name (FQDN) this RR is for."""
    response: NotRequired[str]
    r"""The RDATA field of the RR."""
    type: NotRequired[DNSResourceRecordType]
    r"""An enumerated field indicating what type of data is in the \"services.dns.additionals.response\" field. For example, \"A\" signifies that the value in \"services.dns.additionals.response\" is an IPv4 address for the FQDN in \"services.dns.additionals.name\"."""


class DNSResourceRecord(BaseModel):
    name: Optional[str] = None
    r"""The Fully Qualified Domain Name (FQDN) this RR is for."""

    response: Optional[str] = None
    r"""The RDATA field of the RR."""

    type: Optional[DNSResourceRecordType] = None
    r"""An enumerated field indicating what type of data is in the \"services.dns.additionals.response\" field. For example, \"A\" signifies that the value in \"services.dns.additionals.response\" is an IPv4 address for the FQDN in \"services.dns.additionals.name\"."""
