Struct cedar_policy::Schema
source · pub struct Schema(/* private fields */);
Expand description
Object containing schema information used by the validator.
Implementations§
source§impl Schema
impl Schema
sourcepub fn from_schema_fragments(
fragments: impl IntoIterator<Item = SchemaFragment>
) -> Result<Self, SchemaError>
pub fn from_schema_fragments( fragments: impl IntoIterator<Item = SchemaFragment> ) -> Result<Self, SchemaError>
Create a Schema
from multiple SchemaFragment
. The individual
fragments may references entity types that are not declared in that
fragment, but all referenced entity types must be declared in some
fragment.
sourcepub fn from_json_value(json: Value) -> Result<Self, SchemaError>
pub fn from_json_value(json: Value) -> Result<Self, SchemaError>
Create a Schema
from a JSON value (which should be an object of the
shape required for Cedar schemas).
sourcepub fn from_file(file: impl Read) -> Result<Self, SchemaError>
pub fn from_file(file: impl Read) -> Result<Self, SchemaError>
Create a Schema
directly from a file.
sourcepub fn from_file_natural(
file: impl Read
) -> Result<(Self, impl Iterator<Item = SchemaWarning>), HumanSchemaError>
pub fn from_file_natural( file: impl Read ) -> Result<(Self, impl Iterator<Item = SchemaWarning>), HumanSchemaError>
Parse the schema from a reader
sourcepub fn from_str_natural(
src: &str
) -> Result<(Self, impl Iterator<Item = SchemaWarning>), HumanSchemaError>
pub fn from_str_natural( src: &str ) -> Result<(Self, impl Iterator<Item = SchemaWarning>), HumanSchemaError>
Parse the schema from a string
sourcepub fn action_entities(&self) -> Result<Entities, EntitiesError>
pub fn action_entities(&self) -> Result<Entities, EntitiesError>
Extract from the schema an Entities
containing the action entities
declared in the schema.
Trait Implementations§
source§impl FromStr for Schema
impl FromStr for Schema
source§fn from_str(schema_src: &str) -> Result<Self, Self::Err>
fn from_str(schema_src: &str) -> Result<Self, Self::Err>
Construct a schema from a string containing a schema formatted in the Cedar schema format. This can fail if it is not possible to parse a schema from the strings, or if errors in values in the schema are uncovered after parsing. For instance, when an entity attribute name is found to not be a valid attribute name according to the Cedar grammar.
§type Err = SchemaError
type Err = SchemaError
source§impl TryInto<Schema> for SchemaFragment
impl TryInto<Schema> for SchemaFragment
source§fn try_into(self) -> Result<Schema, Self::Error>
fn try_into(self) -> Result<Schema, Self::Error>
Convert SchemaFragment
into a Schema
. To build the Schema
we
need to have all entity types defined, so an error will be returned if
any undeclared entity types are referenced in the schema fragment.