server.web.schemas.task_template

Classes

TaskTemplateResourceUsageRequest

TaskTemplateResourceAggregatesRequest

Request for the lightweight aggregates endpoint.

ResourceClusterItem

One requested-resource cluster summary.

ResourceEfficiencyMetrics

Aggregate resource efficiency metrics for a task template.

TaskTemplateResourceAggregatesResponse

Compact server-computed aggregates for a task template.

RequestedResourcesModel

TaskResourceDetailItem

TaskResourceVizItem

FormattedStats

Formatted statistics for legacy client compatibility.

TaskTemplateResourceUsageResponse

Unified response model for task template resource usage.

TaskTemplateDetailsResponse

TaskTemplateVersionItem

Individual task template version item.

TaskTemplateVersionResponse

Response model for task template version queries.

CoreInfoItem

Individual core info item.

RequestedCoresResponse

Response model for requested cores queries.

QueueInfoItem

Individual queue info item.

MostPopularQueueResponse

Response model for most popular queue queries.

WorkflowTaskTemplateStatusItem

Individual workflow task template status item.

FatalErrorBreakdownResponse

Breakdown of fatal errors by type for a single template.

WorkflowResourceErrorCheckResponse

Response for checking if a workflow has any resource errors.

ErrorLogItem

Error log item - can represent individual errors or clustered errors.

ErrorLogResponse

Response model for error log queries.

Module Contents

class server.web.schemas.task_template.TaskTemplateResourceUsageRequest

Bases: pydantic.BaseModel

task_template_version_id: int
workflows: List[int] | None = None
node_args: Dict[str, List[str]] | None = None
ci: str | None = None
viz: bool = False
page: int | None
page_size: int | None
class server.web.schemas.task_template.TaskTemplateResourceAggregatesRequest

Bases: pydantic.BaseModel

Request for the lightweight aggregates endpoint.

task_template_version_id: int
workflows: List[int] | None = None
node_args: Dict[str, List[str]] | None = None
latest_only: bool = True
class server.web.schemas.task_template.ResourceClusterItem

Bases: pydantic.BaseModel

One requested-resource cluster summary.

We ship only the numeric (runtime, memory) pair plus the count; the frontend derives the string cluster key itself using the same rounding/formatting it applies to scatter rows, so there’s no cross-language string contract that can drift between Python and JS.

Cluster → instance membership is also recomputed frontend-side from streaming scatter rows — shipping per-instance IDs here would dominate the aggregates payload on large templates.

runtime: float
memory: float
task_count: int
class server.web.schemas.task_template.ResourceEfficiencyMetrics

Bases: pydantic.BaseModel

Aggregate resource efficiency metrics for a task template.

memory_utilization: float = 0.0
runtime_utilization: float = 0.0
over_allocated_memory: int = 0
under_allocated_memory: int = 0
over_allocated_runtime: int = 0
under_allocated_runtime: int = 0
p95_memory: float | None = None
p95_runtime: float | None = None
outlier_count: int = 0
class server.web.schemas.task_template.TaskTemplateResourceAggregatesResponse

Bases: pydantic.BaseModel

Compact server-computed aggregates for a task template.

Memory and runtime stats are Optional[float] (not int) so the client’s per-field merge doesn’t permanently overwrite more precise client-computed floats with a truncated integer. efficiency defaults to None when the template has no efficiency-relevant data (zero-TI workflow, or TIs without requested resources) so the frontend can distinguish “no server data” from “server says all zeros”.

num_tasks: int | None = None
min_mem: float | None = None
max_mem: float | None = None
mean_mem: float | None = None
median_mem: float | None = None
p95_mem: float | None = None
min_runtime: float | None = None
max_runtime: float | None = None
mean_runtime: float | None = None
median_runtime: float | None = None
p95_runtime: float | None = None
median_requested_runtime: float | None = None
median_requested_memory: float | None = None
resource_clusters: List[ResourceClusterItem] = []
efficiency: ResourceEfficiencyMetrics | None = None
class server.web.schemas.task_template.RequestedResourcesModel

Bases: pydantic.BaseModel

memory: float | None = None
runtime: float | None = None
cores: float | None = None
queue: str | None = None
class server.web.schemas.task_template.TaskResourceDetailItem

Bases: pydantic.BaseModel

r: float | None
m: int | None
node_id: int
task_id: int
task_instance_id: int | None = None
task_name: str | None = None
requested_resources: str | None = None
task_resources_id: int | None = None
attempt_number_of_instance: int | None = None
status: str | None = None
task_status_date: datetime.datetime | None = None
task_command: str | None = None
task_num_attempts: int | None = None
task_max_attempts: int | None = None
workflow_run_id: int | None = None
model_config
class server.web.schemas.task_template.TaskResourceVizItem

Bases: pydantic.BaseModel

r: float | None = None
m: int | None = None
node_id: int
task_id: int
task_instance_id: int | None = None
task_name: str | None = None
requested_resources: str | None = None
task_resources_id: int | None = None
attempt_number_of_instance: int | None = None
status: str | None = None
task_status_date: datetime.datetime | None = None
task_command: str | None = None
task_num_attempts: int | None = None
task_max_attempts: int | None = None
workflow_run_id: int | None = None
class server.web.schemas.task_template.FormattedStats

Bases: pydantic.BaseModel

Formatted statistics for legacy client compatibility.

num_tasks: int | None = None
min_mem: str | None = None
max_mem: str | None = None
mean_mem: str | None = None
min_runtime: int | None = None
max_runtime: int | None = None
mean_runtime: float | None = None
median_mem: str | None = None
median_runtime: float | None = None
ci_mem: List[float | None] | None = None
ci_runtime: List[float | None] | None = None
class server.web.schemas.task_template.TaskTemplateResourceUsageResponse

Bases: pydantic.BaseModel

Unified response model for task template resource usage.

model_config
num_tasks: int | None = None
min_mem: int | None = None
max_mem: int | None = None
mean_mem: float | None = None
min_runtime: int | None = None
max_runtime: int | None = None
mean_runtime: float | None = None
median_mem: float | None = None
median_runtime: float | None = None
ci_mem: List[float | None] | None = None
ci_runtime: List[float | None] | None = None
result_viz: List[TaskResourceVizItem] | None = None
total_count: int | None = None
page: int | None = None
page_size: int | None = None
formatted_stats() FormattedStats

Provide formatted statistics similar to legacy client format.

class server.web.schemas.task_template.TaskTemplateDetailsResponse

Bases: pydantic.BaseModel

task_template_id: int
task_template_name: str
task_template_version_id: int
class server.web.schemas.task_template.TaskTemplateVersionItem

Bases: pydantic.BaseModel

Individual task template version item.

id: int
name: str
class server.web.schemas.task_template.TaskTemplateVersionResponse

Bases: pydantic.BaseModel

Response model for task template version queries.

task_template_version_ids: List[TaskTemplateVersionItem]
class server.web.schemas.task_template.CoreInfoItem

Bases: pydantic.BaseModel

Individual core info item.

id: int
min: int
max: int
avg: int
class server.web.schemas.task_template.RequestedCoresResponse

Bases: pydantic.BaseModel

Response model for requested cores queries.

core_info: List[CoreInfoItem]
class server.web.schemas.task_template.QueueInfoItem

Bases: pydantic.BaseModel

Individual queue info item.

id: int
queue: str
queue_id: int
class server.web.schemas.task_template.MostPopularQueueResponse

Bases: pydantic.BaseModel

Response model for most popular queue queries.

queue_info: List[QueueInfoItem]
class server.web.schemas.task_template.WorkflowTaskTemplateStatusItem

Bases: pydantic.BaseModel

Individual workflow task template status item.

id: int
name: str
tasks: int
PENDING: int
SCHEDULED: int
RUNNING: int
DONE: int
FATAL: int
MAXC: int | str
num_attempts_min: float | None
num_attempts_max: float | None
num_attempts_avg: float | None
task_template_version_id: int
class server.web.schemas.task_template.FatalErrorBreakdownResponse

Bases: pydantic.BaseModel

Breakdown of fatal errors by type for a single template.

resource: int = 0
app: int = 0
infra: int = 0
resource_error_total: int = 0
resource_error_retried: int = 0
resource_error_ti_ids: List[int] = []
class server.web.schemas.task_template.WorkflowResourceErrorCheckResponse

Bases: pydantic.BaseModel

Response for checking if a workflow has any resource errors.

has_resource_errors: bool
class server.web.schemas.task_template.ErrorLogItem

Bases: pydantic.BaseModel

Error log item - can represent individual errors or clustered errors.

task_id: int | None = None
task_instance_id: int | None = None
task_instance_err_id: int | None = None
error_time: datetime.datetime | None = None
error: str | None = None
task_instance_stderr_log: str | None = None
workflow_run_id: int
workflow_id: int
error_score: float | None = None
group_instance_count: int | None = None
task_instance_ids: List[int] | None = None
task_ids: List[int] | None = None
sample_error: str | None = None
first_error_time: datetime.datetime | None = None
model_config
class server.web.schemas.task_template.ErrorLogResponse

Bases: pydantic.BaseModel

Response model for error log queries.

error_logs: List[ErrorLogItem]
total_count: int
page: int
page_size: int