Expand description
Value objects for SCIM resource domain primitives.
This module contains immutable value objects that encapsulate validation logic for core SCIM domain concepts. Each value object enforces invariants at construction time, making invalid states unrepresentable.
§Design Principles
- Immutable: Once created, value objects cannot be modified
- Self-validating: Validation happens at construction time via explicit constructors
- Type-safe: Invalid states are unrepresentable at compile time
- Domain-focused: Each type represents a specific business concept
§Usage Pattern
Structs§
- Address
- A validated SCIM address attribute.
- Composite
Validator Chain - Composite validator that combines multiple validation rules.
- Email
Address - A validated SCIM email address.
- Email
Consistency Validator - Validator for email address consistency across different contexts.
- Extension
Attribute Value - A single extension attribute with its value and metadata.
- Extension
Collection - Collection of extension attributes grouped by schema URI.
- External
Id - A validated SCIM external identifier.
- Generic
Multi Valued Attribute - Generic multi-valued attribute container for factory-created objects.
- Group
Member - A value object representing a single group member in SCIM.
- Identity
Consistency Validator - Validator for resource identity consistency.
- Meta
- A validated SCIM meta attribute.
- Multi
Valued Attribute - A generic container for multi-valued SCIM attributes.
- Name
- A validated SCIM name attribute.
- Name
Consistency Validator - Validator for name and display name consistency.
- Phone
Number - A validated SCIM phone number attribute.
- Resource
Id - A validated SCIM resource identifier.
- Schema
Uri - A validated SCIM schema URI.
- Unique
Primary Validator - Validator that ensures unique primary values across multi-valued attributes.
- User
Name - A validated SCIM user name.
- User
Name Uniqueness Validator - Validator that ensures username uniqueness constraints.
- Value
Object Factory - Factory for creating value objects from schema definitions and JSON values.
- Value
Object Registry - Registry for value object constructors.
Traits§
- Composite
Validator - Trait for composite validation across multiple value objects.
- Extension
Attribute - Trait for value objects that represent extension attributes.
- Schema
Constructible - Trait for value objects that can be created from schema definitions.
- Value
Object - Core trait for all SCIM value objects.
- Value
Object Constructor - Trait for value object constructors that can be registered.
Type Aliases§
- Group
Members - Type alias for a collection of group members using MultiValuedAttribute.
- Multi
Valued Addresses - Type alias for a collection of addresses using MultiValuedAttribute.
- Multi
Valued Emails - Type alias for a collection of email addresses using MultiValuedAttribute.
- Multi
Valued Phone Numbers - Type alias for a collection of phone numbers using MultiValuedAttribute.