# Package io.axoniq.dataprotection.api

Annotations, exceptions and encryption service objects of the Axon Data Protection Module.

- Class Summary
  Class | Description
  --- | ---
  FieldEncrypter | This class can take an object and encrypt and decrypt its fields, including the fields of any objects deeper in the object tree, according to the configuration of the various Axon Data Protection Module annotations.
  FieldEncryptingSerializer | Implementation of `Serializer` which wraps a delegate `Serializer`, but performs encryption before serializing and decryption after deserializing, using a `FieldEncrypter`.
  ReplacementValueProvider | Class that represents the replacement value mechanism.

- Enum Summary
  Enum | Description
  --- | ---
  Scope | Enum that determines the scope of one of the other Axon Data Protection Module annotations.

- Exception Summary
  Exception | Description
  --- | ---
  ConfigurationException | Runtime exception which indicates that there is some problem with the configuration.
  DataException | Runtime exception that is thrown when something unexpected happens with a single data record, but the system should be able to continue functioning with other data entries.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  DataSubjectId | Field annotation that marks the field as containing an identifier of the key to be used when encrypting personal data fields of this class.
  DataSubjectIdContainer | Container annotation defined to support the use of multiple `DataSubjectId` annotations on the same field.
  DeepPersonalData | Field annotation that marks the field as containing an object that contains personal data.
  DeepPersonalDataContainer | Container annotation defined to support the use of multiple `DeepPersonalData` annotations on the same field.
  PersonalData | Field annotation that marks the field as containing personal data.
  PersonalDataContainer | Container annotation defined to support the use of multiple `PersonalData` annotations on the same field.
  PersonalDataType | Marker annotation to indicate that a class is a suitable type for `DeepPersonalData`, even though it by itself doesn't carry any Axon Data Protection Module annotations.
  SerializedPersonalData | Field annotation that marks the field as containing personal data.