# !!!
# WARNING: This file is autogenerated
# Only modify code within MANUAL() sections
# or your changes may be overwritten later!
# !!!

from __future__ import annotations

import datetime
from typing import Optional

from stytch.consumer.models.fraud import RuleAction
from stytch.core.response_base import ResponseBase


class SetResponse(ResponseBase):
    """Response type for `Rules.set`.
    Fields:
      - action: The action that will be returned for the specified fingerprint or ID.
      - visitor_id: The cookie stored on the user's device that uniquely identifies them.
      - browser_id: Combination of VisitorID and NetworkFingerprint to create a clear identifier of a browser.
      - visitor_fingerprint: Cookie-less way of identifying a unique user.
      - browser_fingerprint: Combination of signals to identify a browser and its specific version.
      - hardware_fingerprint: Combinations of signals to identify an operating system and architecture.
      - network_fingerprint: Combination of signals associated with a specific network commonly known as TLS fingerprinting.
      - expires_at: The timestamp when the rule expires. Values conform to the RFC 3339 standard and are expressed in UTC, e.g. `2021-12-29T12:33:09Z`.
    """  # noqa

    action: RuleAction
    visitor_id: Optional[str] = None
    browser_id: Optional[str] = None
    visitor_fingerprint: Optional[str] = None
    browser_fingerprint: Optional[str] = None
    hardware_fingerprint: Optional[str] = None
    network_fingerprint: Optional[str] = None
    expires_at: Optional[datetime.datetime] = None
