policyweaver.models.fabric

policyweaver.models.fabric

class policyweaver.models.fabric.ColumnConstraint(*, tablePath: str | None = None, columnNames: List[str] | None = None, columnEffect: PolicyEffectType | None = None, columnAction: List[FabricPolicyAccessType] | None = None)

Bases: CommonBaseModel

Represents a column constraint in a policy decision rule. Attributes:

table_path: The path of the table to which the constraint applies. column_names: A list of column names to which the constraint applies. column_effect: The effect of the constraint (e.g., Permit). column_action: The action associated with the constraint (e.g., Read, Write).

_abc_impl = <_abc._abc_data object>
column_action: List[FabricPolicyAccessType] | None
column_effect: PolicyEffectType | None
column_names: List[str] | None
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'exclude_none': True, 'exclude_unset': True, 'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

table_path: str | None
class policyweaver.models.fabric.Constraints(*, columns: List[ColumnConstraint] | None = None, rows: List[RowConstraint] | None = None)

Bases: CommonBaseModel

Represents constraints in a policy decision rule. Attributes:

columns: A list of column constraints associated with the policy decision.

_abc_impl = <_abc._abc_data object>
columns: List[ColumnConstraint] | None
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'exclude_none': True, 'exclude_unset': True, 'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

rows: List[RowConstraint] | None
class policyweaver.models.fabric.DataAccessPolicy(*, id: str | None = None, name: str | None = None, decisionRules: List[PolicyDecisionRule] | None = None, members: PolicyMembers | None = None)

Bases: CommonBaseModel

Represents a data access policy in a Fabric environment. Attributes:

id: The unique identifier of the policy. name: The name of the policy. decision_rules: A list of decision rules associated with the policy. members: The members associated with the policy, including Fabric and Entra members.

_abc_impl = <_abc._abc_data object>
decision_rules: List[PolicyDecisionRule] | None
id: str | None
members: PolicyMembers | None
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'exclude_none': True, 'exclude_unset': True, 'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str | None
class policyweaver.models.fabric.EntraMember(*, objectId: str | None = None, objectType: FabricMemberObjectType | None = None, tenantId: str | None = None)

Bases: CommonBaseModel

Represents a member in Microsoft Entra. Attributes:

object_id: The unique identifier of the member. object_type: The type of the member (e.g., Group, User). tenant_id: The identifier of the tenant to which the member belongs.

_abc_impl = <_abc._abc_data object>
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'exclude_none': True, 'exclude_unset': True, 'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

object_id: str | None
object_type: FabricMemberObjectType | None
tenant_id: str | None
class policyweaver.models.fabric.PolicyDecisionRule(*, effect: PolicyEffectType | None = None, permission: List[PolicyPermissionScope] | None = None, constraints: Constraints | None = None)

Bases: CommonBaseModel

Represents a decision rule in a policy. Attributes:

effect: The effect of the policy decision (e.g., Permit). permission: A list of permission scopes associated with the policy decision.

_abc_impl = <_abc._abc_data object>
constraints: Constraints | None
effect: PolicyEffectType | None
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'exclude_none': True, 'exclude_unset': True, 'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

permission: List[PolicyPermissionScope] | None
class policyweaver.models.fabric.PolicyMember(*, sourcePath: str | None = None, itemAccess: List[FabricPolicyAccessType] | None = None)

Bases: CommonBaseModel

Represents a member in a Fabric policy. Attributes:

object_id: The unique identifier of the member. object_type: The type of the member (e.g., Group, User). tenant_id: The identifier of the tenant to which the member belongs. source_path: The source path associated with the member. item_access: A list of access types granted to the member.

_abc_impl = <_abc._abc_data object>
item_access: List[FabricPolicyAccessType] | None
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'exclude_none': True, 'exclude_unset': True, 'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

source_path: str | None
class policyweaver.models.fabric.PolicyMembers(*, fabricItemMembers: List[PolicyMember] | None = None, microsoftEntraMembers: List[EntraMember] | None = None)

Bases: CommonBaseModel

Represents the members of a policy, including Fabric and Entra members. Attributes:

fabric_members: A list of Fabric policy members. entra_members: A list of Microsoft Entra members.

_abc_impl = <_abc._abc_data object>
entra_members: List[EntraMember] | None
fabric_members: List[PolicyMember] | None
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'exclude_none': True, 'exclude_unset': True, 'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class policyweaver.models.fabric.PolicyPermissionScope(*, attributeName: PolicyAttributeType | None = None, attributeValueIncludedIn: List[str] | None = None)

Bases: CommonBaseModel

Represents the scope of permissions in a policy. Attributes:

attribute_name: The name of the attribute for the permission scope. attribute_value_included_in: A list of values that are included in the attribute.

_abc_impl = <_abc._abc_data object>
attribute_name: PolicyAttributeType | None
attribute_value_included_in: List[str] | None
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'exclude_none': True, 'exclude_unset': True, 'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class policyweaver.models.fabric.RowConstraint(*, tablePath: str | None = None, value: str | None = None)

Bases: CommonBaseModel

Represents a row constraint in a policy decision rule. Attributes:

table_path: The path of the table to which the constraint applies. value: The condition or value defining the row constraint.

_abc_impl = <_abc._abc_data object>
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'exclude_none': True, 'exclude_unset': True, 'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

table_path: str | None
value: str | None