Source code for nv_ingest.framework.util.service.meta.ingest.ingest_service_meta
# SPDX-FileCopyrightText: Copyright (c) 2024-25, NVIDIA CORPORATION & AFFILIATES.
# All rights reserved.
# SPDX-License-Identifier: Apache-2.0
from abc import ABC
from abc import abstractmethod
from typing import List, Optional
from nv_ingest.framework.schemas.framework_message_wrapper_schema import MessageWrapper
from nv_ingest.framework.schemas.framework_processing_job_schema import ProcessingJob
from nv_ingest_api.util.service_clients.client_base import FetchMode
[docs]
class IngestServiceMeta(ABC):
[docs]
@abstractmethod
async def submit_job(self, job_spec: MessageWrapper, trace_id: str) -> str:
"""Abstract method for submitting one or more jobs to the ingestion pipeline"""
[docs]
@abstractmethod
async def fetch_job(self, job_id: str):
"""Abstract method for fetching job from ingestion service based on job_id"""
[docs]
@abstractmethod
async def set_processing_cache(self, job_id: str, jobs_data: List[ProcessingJob]) -> None:
"""Abstract method for setting processing cache"""
[docs]
@abstractmethod
async def get_processing_cache(self, job_id: str) -> List[ProcessingJob]:
"""Abstract method for getting processing cache"""
[docs]
@abstractmethod
async def set_job_state(self, job_id: str, state: str, ttl: int = 86400):
"""Abstract method for setting job state"""
[docs]
@abstractmethod
async def get_job_state(self, job_id: str) -> Optional[str]:
"""Abstract method for getting job state"""
[docs]
@abstractmethod
async def get_fetch_mode(self) -> FetchMode:
"""Abstract method for getting fetch mode"""