Source code for satorbis_kit.pgstac.clients.base

"""Abstract base class for STAC ingestion clients."""

from abc import ABC, abstractmethod
from typing import Any, Dict

from ..models import IngestionConfig, IngestionResponse


[docs] class AbstractSTACClient(ABC): """Abstract base class for STAC ingestion clients. This class defines the interface that all STAC ingestion clients must implement, whether they communicate with Airflow directly or through an intermediary service. """
[docs] @abstractmethod def submit_ingestion(self, config: IngestionConfig) -> IngestionResponse: """Submit raster stacking and STAC ingestion request. Args: config: IngestionConfig object with job parameters Returns: IngestionResponse with job ID and status Raises: APIError: If API request fails """ pass
[docs] @abstractmethod def get_job_status(self, job_id: str) -> Dict[str, Any]: """Get status of an ingestion job. Args: job_id: Job ID returned from submit_ingestion Returns: Dictionary with job status information Raises: APIError: If API request fails """ pass