use crate::v1_1::common::archetyped::archetyped::Archetyped;
use crate::v1_1::common::archetyped::feeder_audit::FeederAudit;
use crate::v1_1::common::archetyped::link::Link;
use crate::v1_1::data_structures::item_structure::item_structure::ItemStructure;
use crate::v1_1::data_types::quantity::date_time::dv_date::DvDate;
use crate::v1_1::data_types::quantity::dv_interval::DvInterval;
use crate::v1_1::data_types::text::dv_text::DvText;
use crate::v1_1::demographic::capability::Capability;
use crate::v1_1::demographic::contact::Contact;
use crate::v1_1::demographic::party_identity::PartyIdentity;
use crate::v1_1::demographic::party_relationship::PartyRelationship;
use openehr_base::v1_2::base_types::identification::locatable_ref::LocatableRef;
use openehr_base::v1_2::base_types::identification::party_ref::PartyRef;
use openehr_base::v1_2::base_types::identification::uid_based_id::UidBasedId;
#[doc(alias = "ROLE")]
#[derive(Debug, Clone, PartialEq)]
pub struct Role {
pub name: DvText,
pub archetype_node_id: String,
pub uid: Option<UidBasedId>,
pub links: Option<openehr_base::containers::NonEmptyVec<Link>>,
pub archetype_details: Option<Archetyped>,
pub feeder_audit: Option<FeederAudit>,
pub identities: openehr_base::containers::NonEmptyVec<PartyIdentity>,
pub contacts: Option<openehr_base::containers::NonEmptyVec<Contact>>,
pub details: Option<ItemStructure>,
pub reverse_relationships: Option<openehr_base::containers::NonEmptyVec<LocatableRef>>,
pub relationships: Option<openehr_base::containers::NonEmptyVec<PartyRelationship>>,
pub time_validity: Option<DvInterval<DvDate>>,
pub performer: PartyRef,
pub capabilities: Option<openehr_base::containers::NonEmptyVec<Capability>>,
}