diff --git a/src/zenml/models/v2/core/deployment.py b/src/zenml/models/v2/core/deployment.py index d08cd30ed5..a4e1b037ad 100644 --- a/src/zenml/models/v2/core/deployment.py +++ b/src/zenml/models/v2/core/deployment.py @@ -53,6 +53,7 @@ from zenml.models.v2.core.pipeline_snapshot import ( PipelineSnapshotResponse, ) + from zenml.models.v2.core.stack import StackResponse from zenml.models.v2.core.tag import TagResponse from zenml.zen_stores.schemas.base_schemas import BaseSchema @@ -212,6 +213,11 @@ class DeploymentResponseResources(ProjectScopedResponseResources): default_factory=list, title="Curated deployment visualizations.", ) + stack: Optional["StackResponse"] = Field( + default=None, + title="The stack that was deployed.", + description="The stack that was deployed.", + ) class DeploymentResponse( @@ -321,6 +327,15 @@ def visualizations(self) -> List["CuratedVisualizationResponse"]: """ return self.get_resources().visualizations + @property + def stack(self) -> Optional["StackResponse"]: + """The stack. + + Returns: + The stack. + """ + return self.get_resources().stack + @property def snapshot_id(self) -> Optional[UUID]: """The pipeline snapshot ID. diff --git a/src/zenml/zen_stores/schemas/deployment_schemas.py b/src/zenml/zen_stores/schemas/deployment_schemas.py index 98d7327e57..2ed8f0d069 100644 --- a/src/zenml/zen_stores/schemas/deployment_schemas.py +++ b/src/zenml/zen_stores/schemas/deployment_schemas.py @@ -182,6 +182,9 @@ def get_query_options( selectinload(jl_arg(DeploymentSchema.snapshot)).joinedload( jl_arg(PipelineSnapshotSchema.pipeline) ), + selectinload(jl_arg(DeploymentSchema.snapshot)).joinedload( + jl_arg(PipelineSnapshotSchema.stack) + ), selectinload(jl_arg(DeploymentSchema.visualizations)), ] ) @@ -241,6 +244,9 @@ def to_model( pipeline=self.snapshot.pipeline.to_model() if self.snapshot and self.snapshot.pipeline else None, + stack=self.snapshot.stack.to_model() + if self.snapshot and self.snapshot.stack + else None, visualizations=[ visualization.to_model( include_metadata=False,