pub struct AccessPolicyV3Rule {
pub name: Option<Box<FHIRString>>,
pub description: Option<Box<FHIRString>>,
pub kind: BoundCode<Accesspolicyv3rulekind>,
pub type_: BoundCode<Accesspolicyv3ruletype>,
pub combining: Option<BoundCode<Accesspolicyv3combining>>,
pub target: Option<AccessPolicyV3RuleTarget>,
pub condition: Option<AccessPolicyV3RuleCondition>,
pub data: Option<Vec<AccessPolicyV3RuleData>>,
pub field: Option<Vec<AccessPolicyV3RuleField>>,
pub obligation: Option<Vec<AccessPolicyV3RuleObligation>>,
pub rule: Option<Vec<AccessPolicyV3Rule>>,
}Expand description
Ordered rules that govern how the access policy is applied.
Fields§
§name: Option<Box<FHIRString>>Rule identifier.
description: Option<Box<FHIRString>>Rule description.
kind: BoundCode<Accesspolicyv3rulekind>Whether the rule decides on the request or constrains the data it can reach.
type_: BoundCode<Accesspolicyv3ruletype>Whether the rule permits or denies.
combining: Option<BoundCode<Accesspolicyv3combining>>How nested rule decisions are combined.
target: Option<AccessPolicyV3RuleTarget>FHIRPath over %request and %principal; false or empty makes the rule not applicable.
condition: Option<AccessPolicyV3RuleCondition>Decision rules only: FHIRPath over any attribute including %target.
data: Option<Vec<AccessPolicyV3RuleData>>Constraint rules only: the data the rule reaches.
field: Option<Vec<AccessPolicyV3RuleField>>Permit rules only: per resource type element handling.
obligation: Option<Vec<AccessPolicyV3RuleObligation>>Permit rules only: obligations the caller must satisfy.
rule: Option<Vec<AccessPolicyV3Rule>>Nested rules; the parent carries its own combining.
Implementations§
Trait Implementations§
Source§impl Clone for AccessPolicyV3Rule
impl Clone for AccessPolicyV3Rule
Source§impl Debug for AccessPolicyV3Rule
impl Debug for AccessPolicyV3Rule
Source§impl Default for AccessPolicyV3Rule
impl Default for AccessPolicyV3Rule
Source§impl<'de> Deserialize<'de> for AccessPolicyV3Rule
impl<'de> Deserialize<'de> for AccessPolicyV3Rule
Source§fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Self, D::Error>
Deserialize this value from the given Serde deserializer. Read more
Source§impl MetaValue for AccessPolicyV3Rule
impl MetaValue for AccessPolicyV3Rule
fn fields(&self) -> Vec<&'static str>
fn get_field<'a>(&'a self, field: &str) -> Option<&'a dyn MetaValue>
fn get_field_mut<'a>(&'a mut self, field: &str) -> Option<&'a mut dyn MetaValue>
fn get_index_mut<'a>( &'a mut self, _index: usize, ) -> Option<&'a mut dyn MetaValue>
fn get_index<'a>(&'a self, _index: usize) -> Option<&'a dyn MetaValue>
fn fhir_type(&self) -> &'static str
fn as_any(&self) -> &dyn Any
fn flatten(&self) -> Vec<&dyn MetaValue>
fn is_many(&self) -> bool
Auto Trait Implementations§
impl !Freeze for AccessPolicyV3Rule
impl RefUnwindSafe for AccessPolicyV3Rule
impl Send for AccessPolicyV3Rule
impl Sync for AccessPolicyV3Rule
impl Unpin for AccessPolicyV3Rule
impl UnsafeUnpin for AccessPolicyV3Rule
impl UnwindSafe for AccessPolicyV3Rule
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more