Source code for domainrobot.services.subscription

from __future__ import annotations

from ..models.resources import Subscription
from ._base import BaseService


[docs] class SubscriptionService(BaseService): """Subscription contract operations."""
[docs] def create(self, body: dict, *, headers: dict | None = None): """Create a new subscription. :param body: Subscription data. :param headers: Optional extra HTTP headers. :returns: Response with :class:`~domainrobot.models.resources.Subscription` data. """ return self._request("POST", "/subscription", json=body, headers=headers, model=Subscription)
[docs] def update(self, contract_id: int, body: dict, *, headers: dict | None = None): """Update a subscription. :param contract_id: Contract ID. :param body: Subscription data to update. :param headers: Optional extra HTTP headers. :returns: Response with :class:`~domainrobot.models.resources.Subscription` data. """ return self._request( "PUT", f"/subscription/{contract_id}", json=body, headers=headers, model=Subscription )
[docs] def delete(self, contract_id: int, *, headers: dict | None = None): """Delete a subscription. :param contract_id: Contract ID. :param headers: Optional extra HTTP headers. :returns: Response with :class:`~domainrobot.models.resources.Subscription` data. """ return self._request( "DELETE", f"/subscription/{contract_id}", headers=headers, model=Subscription )
[docs] def list(self, body: dict | None = None, *, headers: dict | None = None): """List subscriptions. :param body: Optional query filters. :param headers: Optional extra HTTP headers. :returns: Response with list of :class:`~domainrobot.models.resources.Subscription`. """ return self._request( "POST", "/subscription/_search", json=body or {}, headers=headers, model=Subscription )