// @generated by openehr-codegen from BMM (`EL_PROCEDURE_AGENT`) — DO NOT EDIT.
// SPDX-FileCopyrightText: Vernum Projecten B.V.
// SPDX-FileCopyrightText: openEHR Foundation
// SPDX-License-Identifier: Apache-2.0
//! The openEHR `EL_PROCEDURE_AGENT` spec class, generated from the vendored BMM
//! meta-model.
use crate::v1_0::bmm::core::feature::bmm_procedure::BmmProcedure;
use crate::v1_0::bmm::expression::el_instance_ref::ElInstanceRef;
use crate::v1_0::bmm::expression::el_tuple::ElTuple;
/// An agent whose signature is of a procedure, i.e. has no result type.
#[doc(alias = "EL_PROCEDURE_AGENT")]
#[derive(Debug, Clone, PartialEq)]
pub struct ElProcedureAgent {
// inherited: EL_SCOPED_REF
/// Reference to an owning object for this terminal element, if it is not the current scope.
pub scope: Option<Box<ElInstanceRef>>,
// inherited: EL_AGENT
/// Name of the routine being called.
pub name: String,
/// Closed arguments of a routine call as a tuple of objects.
pub closed_args: Option<ElTuple>,
/// Optional list of names of open arguments of the call.
///
/// If not provided, and the `_name_` refers to a routine with more arguments than supplied in `_closed_args_`, the missing arguments are inferred from the `_definition_`.
pub open_args: Option<Vec<String>>,
/// Reference to definition of routine for which this is a call instance.
pub definition: Option<Box<BmmProcedure>>,
}