- Fix :attr:`~SearchRequest.start_index` and :attr:`~SearchRequest.count` limits. :issue:`84`
- :attr:`~ListResponse.total_resuls` is required.
- :meth:`Attribute.get_attribute <scim2_models.Attribute.get_attribute>` can be called with brackets.
- Add a :paramref:`~scim2_models.BaseModel.model_validate.original` parameter to :meth:`~scim2_models.BaseModel.model_validate` mandatory for :attr:`~scim2_models.Context.RESOURCE_REPLACEMENT_REQUEST`. This original value is used to look if :attr:`~scim2_models.Mutability.immutable` parameters have mutated. :issue:`86`
- Implement :meth:`Schema.get_attribute <scim2_models.Schema.get_attribute>`.
- Implement :meth:`SearchRequest.start_index_0 <scim2_models.SearchRequest.start_index_0>` and :meth:`SearchRequest.start_index_1 <scim2_models.SearchRequest.start_index_1>`.
- The
schemaattribute is annotated with :attr:`~scim2_models.Required.true`.
Base64Bytescompatibility between pydantic 2.10+ and <2.10
- Support for Pydantic 2.10.
- Implement :meth:`~scim2_models.BaseModel.model_dump_json`.
- Temporarily set Pydantic 2.9 as the maximum supported version.
- Python 3.9 and 3.10 compatibility.
- Python 3.13 support.
- Proper Base64 serialization. :issue:`31`
- :meth:`~BaseModel.get_field_root_type` supports :data:`~typing.UnionType`.
- :attr:`SearchRequest.attributes <scim2_models.SearchRequest.attributes>` and :attr:`SearchRequest.attributes <scim2_models.SearchRequest.excluded_attributes>` are mutually exclusive. :issue:`19`
- :class:`~scim2_models.Schema` ids must be valid URIs. :issue:`26`
- :class:`~scim2_models.ListResponse` pydantic discriminator issue introduced with pydantic 2.9.0. :issue:`75`
- Extension payloads are not required on response contexts. :issue:`77`
- Fix the extension mechanism by introducing the :class:`~scim2_models.Extension` class. :issue:`60`, :issue:`63`
Note
schema.make_model() becomes Resource.from_schema(schema) or Extension.from_schema(schema).
- Enable pydantic :attr:`~pydantic.config.ConfigDict.validate_assignment` option. :issue:`54`
- Add a PEP561
py.typedfile to mark the package as typed.
- Remove :class:`~scim2_models.ListResponse`
ofmethod in favor of regular type parameters.
Note
ListResponse.of(User) becomes ListResponse[User] and ListResponse.of(User, Group)`` becomes ListResponse[Union[User, Group]].
Note
pet: Reference["Pet"] becomes pet: Reference[Literal["Pet"]]
- get_by_payload return :data:`None` on invalid payloads
- instance :meth:`~scim2_models.Resource.model_dump` with multiple extensions :issue:`57`
- Schema dump with context was broken.
- :attr:`scim2_models.PatchOperation.op` attribute is case insensitive to be compatible with Microsoft Entra. :issue:`55`
- Additional bugfixes about attribute case sensitivity :issue:`45`
- Dump was broken after sub-model assignments :issue:`48`
- Extension attributes dump were ignored :issue:`49`
- :class:`~scim2_models.ListResponse` tolerate any schema order :issue:`50`
- Attributes are case insensitive :issue:`39`
- Export resource models with :data:`~scim2_models.Resource.to_schema` :issue:`7`
- :data:`~scim2_models.Reference` type parameters represent SCIM ReferenceType
- :attr:`~scim2_models.SearchRequest.count` and :attr:`~scim2_models.SearchRequest.start_index` validators supports :data:`None` values.
- Dynamic pydantic model creation from SCIM schemas. :issue:`6`
- Use a custom :data:`~scim2_models.Reference` type instead of :class:`~pydantic.AnyUrl` as RFC7643 reference type.
- Allow relative URLs in :data:`~scim2_models.Reference`.
- Models with multiples extensions could not be initialized. :issue:`37`
- :attr:`~scim2_models.SearchRequest.count` value is floored to 1
- :attr:`~scim2_models.SearchRequest.start_index` value is floored to 0
- :attr:`~scim2_models.ListResponse.resources` must be set when :attr:`~scim2_models.ListResponse.totalResults` is non-null.
- Add missing default values. :issue:`33`
- Implement :class:`~scim2_models.CaseExact` attributes annotations.
- Implement :class:`~scim2_models.Required` attributes annotations validation.
- Refactor
get_field_mutabilityandget_field_returnabilityinget_field_annotation.
ServiceProviderConfigurationid is optional.
- Rename
ServiceProviderConfigurationtoServiceProviderConfigto match the RFCs naming convention.
- Pre-defined errors are not constants anymore
- Initial release