Source code for ab.api.endpoints.autoprice

"""AutoPrice API endpoints (2 routes)."""

from __future__ import annotations

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from ab.api.models.autoprice import (
        QuickQuoteResponse,
        QuoteRequestModel,
        QuoteRequestResponse,
    )

from ab.api.base import BaseEndpoint
from ab.api.route import Route

_QUICK_QUOTE = Route(
    "POST", "/autoprice/quickquote",
    request_model="QuoteRequestModel", response_model="QuickQuoteResponse", api_surface="abc",
)
_QUOTE_REQUEST = Route(
    "POST", "/autoprice/v2/quoterequest",
    request_model="QuoteRequestModel", response_model="QuoteRequestResponse", api_surface="abc",
)


[docs] class AutoPriceEndpoint(BaseEndpoint): """Quoting/pricing (ABC API)."""
[docs] def quick_quote(self, *, data: QuoteRequestModel | dict) -> QuickQuoteResponse: """POST /autoprice/quickquote. Args: data: Quote request with access key, job info, contacts, service settings, and items. Accepts a :class:`QuoteRequestModel` instance or a dict. Request model: :class:`QuoteRequestModel` Docs: https://ab-sdk.readthedocs.io/en/latest/api/autoprice/quick_quote.html Request model: QuoteRequestModel Response model: QuickQuoteResponse """ return self._request(_QUICK_QUOTE, json=data)
[docs] def quote_request(self, *, data: QuoteRequestModel | dict) -> QuoteRequestResponse: """POST /autoprice/v2/quoterequest. Args: data: Quote request with access key, job info, contacts, service settings, and items. Accepts a :class:`QuoteRequestModel` instance or a dict. Request model: :class:`QuoteRequestModel` Docs: https://ab-sdk.readthedocs.io/en/latest/api/autoprice/quote_request.html Request model: QuoteRequestModel Response model: QuoteRequestResponse """ return self._request(_QUOTE_REQUEST, json=data)