from typing import Any, Dict, List, Optional from pydantic import BaseModel, Field class PipelineNodeRequest(BaseModel): service: str policies: List[Dict] config: Optional[Dict[str, Any]] = Field(default_factory=dict) class CreatePipelineRequest(BaseModel): pipeline_id: Optional[str] = Field(None, description="Optional pipeline ID") broken_pipeline: Optional[Dict[str, List[PipelineNodeRequest]]] = Field( None, description="Broken pipeline JSON" ) ideal_pipeline: Optional[Dict[str, List[PipelineNodeRequest]]] = Field( None, description="Ideal pipeline JSON" ) class UpdatePipelineRequest(BaseModel): pipeline_id: str = Field(..., description="Pipeline ID to update") broken_pipeline: Optional[Dict[str, List[PipelineNodeRequest]]] = Field( None, description="Broken pipeline JSON" ) ideal_pipeline: Optional[Dict[str, List[PipelineNodeRequest]]] = Field( None, description="Ideal pipeline JSON" )