plexus.dashboard.api.models.procedure module

Procedure Model - Python representation of the GraphQL Procedure type.

Provides methods to manage procedures including: - Creating new procedures - Linking to scorecards and scores - Managing graph nodes and versions - YAML configuration handling

Each procedure belongs to an account and is associated with a scorecard and score. Procedures use a tree structure of nodes, where each node has versions containing YAML configurations and computed values.

class plexus.dashboard.api.models.procedure.Procedure(id: str, featured: bool, accountId: str, createdAt: datetime.datetime, updatedAt: datetime.datetime, rootNodeId: str | None = None, code: str | None = None, state: str | None = None, parentProcedureId: str | None = None, templateId: str | None = None, isTemplate: bool | None = None, scorecardId: str | None = None, scoreId: str | None = None, scoreVersionId: str | None = None, client: ForwardRef('_BaseAPIClient') | None = None)

Bases: BaseModel

__init__(id: str, featured: bool, accountId: str, createdAt: datetime, updatedAt: datetime, rootNodeId: str | None = None, code: str | None = None, state: str | None = None, parentProcedureId: str | None = None, templateId: str | None = None, isTemplate: bool | None = None, scorecardId: str | None = None, scoreId: str | None = None, scoreVersionId: str | None = None, client: _BaseAPIClient | None = None)
accountId: str
classmethod create(client: _BaseAPIClient, accountId: str, scorecardId: str | None = None, scoreId: str | None = None, featured: bool = False, parentProcedureId: str | None = None, isTemplate: bool = False, code: str | None = None, state: str = 'start', scoreVersionId: str | None = None) Procedure

Create a new procedure.

Args:

client: The API client accountId: ID of the account this procedure belongs to scorecardId: Optional ID of the scorecard this procedure is associated with scoreId: Optional ID of the score this procedure is associated with featured: Whether this procedure should be featured parentProcedureId: Optional ID of the parent procedure (if this is an instance) isTemplate: Whether this procedure is a template (default: False) code: Optional YAML code for the procedure state: Initial state (default: “start”) scoreVersionId: Optional ID of the score version

Returns:

The created Procedure instance

create_root_node(yaml_config: str, initial_metadata: Dict[str, Any] | None = None) GraphNode

Create a root node for this procedure with initial metadata.

Args:

yaml_config: The YAML configuration for the initial version initial_metadata: Optional initial metadata (defaults to {“initialized”: True})

Returns:

The created GraphNode

createdAt: datetime
delete() bool

Delete this procedure.

Returns:

True if deletion was successful

featured: bool
classmethod fields() str

Return the GraphQL fields to query for this model

classmethod from_dict(data: Dict[str, Any], client: _BaseAPIClient) Procedure

Create an instance from a dictionary of data

get_root_node() GraphNode | None

Get the root node for this procedure.

Returns:

The root GraphNode or None if not set

classmethod list_by_account(accountId: str, client: _BaseAPIClient, limit: int = 100) List[Procedure]

List procedures for an account, ordered by most recent first.

Args:

accountId: The account ID to filter by client: The API client instance limit: Maximum number of procedures to return

Returns:

List of Procedure instances ordered by updatedAt descending

classmethod list_by_scorecard(scorecardId: str, client: _BaseAPIClient, limit: int = 100) List[Procedure]

List procedures for a scorecard, ordered by most recent first.

Args:

scorecardId: The scorecard ID to filter by client: The API client instance limit: Maximum number of procedures to return

Returns:

List of Procedure instances ordered by updatedAt descending

rootNodeId: str | None
scoreId: str | None
scoreVersionId: str | None
scorecardId: str | None
state: str | None
update(featured: bool | None = None, scorecardId: str | None = None, scoreId: str | None = None) Procedure

Update this procedure.

Args:

featured: Whether this procedure should be featured scorecardId: New scorecard ID (optional) scoreId: New score ID (optional)

Returns:

Updated Procedure instance

update_root_node(rootNodeId: str | None) Procedure

Update the root node ID for this procedure.

Args:

rootNodeId: The ID of the node to set as root

Returns:

Updated Procedure instance

updatedAt: datetime