MaskingDecision

sealed interface MaskingDecision

The masked outcome for one field: decided by a MaskingEngine and executed by a serialization backend. The engine renders the decision fully (down to the concrete value written), so the declared type contract lives in one neutral place rather than being re-derived by each backend.

Inheritors

Types

Link copied to clipboard
data class Omit(val reason: FailReason? = null) : MaskingDecision

Omit the field from the output. reason is null for a contract-safe omission (a HIDE on a nullable/optional field) and non-null when the field was dropped fail-closed, so a backend can surface it (see MaskingFailureSink).

Link copied to clipboard
data object Pass : MaskingDecision

Write the field's real value, unchanged.

Link copied to clipboard

Write JSON null in place of the real value (a nullable non-textual field being redacted).

Link copied to clipboard
data class WriteString(val value: String) : MaskingDecision

Write value — a string placeholder — in place of the real value.