Source code for ds_provider_mock_py_lib.models

"""
**File:** ``models.py``
**Region:** ``ds_provider_mock_py_lib/models``

Shared serializable models used by mock linked-service and dataset settings.

Example:
    >>> from ds_provider_mock_py_lib.models import MockError
    >>> spec = MockError(message="mock: cannot reach backend", code="DS_LINKED_SERVICE_CONNECTION_ERROR", status_code=503)
    >>> spec.serialize()["code"]
    'DS_LINKED_SERVICE_CONNECTION_ERROR'
"""

from __future__ import annotations

from dataclasses import dataclass

from ds_common_serde_py_lib import Serializable


[docs] @dataclass(kw_only=True) class MockError(Serializable): """User-configurable error spec injected by mock settings.""" message: str = "mock error" """Human-readable error message.""" code: str = "DS_RESOURCE_ERROR" """Machine-readable error code.""" status_code: int | None = 500 """HTTP-style status code. ``None`` falls back to the raised exception default."""