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