#### [Abblix\.SecurityEvents](https://www.abblix.com/en/docs/api/abblix-securityevents 'index')
### [Abblix\.SecurityEvents\.Validation](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.Validation 'Abblix\.SecurityEvents\.Validation')

## SecurityEventTokenValidationStates Enum

The facts a validation pipeline has established so far about the token in flight\. Each step
records what it proved, and a step whose safety depends on an earlier proof declares that
through [Require\(SecurityEventTokenValidationStates\)](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.Validation.SecurityEventTokenValidationContext#Abblix.SecurityEvents.Validation.SecurityEventTokenValidationContext.Require(Abblix.SecurityEvents.Validation.SecurityEventTokenValidationStates) 'Abblix\.SecurityEvents\.Validation\.SecurityEventTokenValidationContext\.Require\(Abblix\.SecurityEvents\.Validation\.SecurityEventTokenValidationStates\)') \- which is what turns a
mis\-ordered pipeline into a loud first\-run failure instead of a silently skipped check\.

```csharp
public enum SecurityEventTokenValidationStates
```
### Fields

###### `None` 0 {#Abblix.SecurityEvents.Validation.SecurityEventTokenValidationStates.None}

Nothing established yet: the token is an opaque string\.

###### `Parsed` 1 {#Abblix.SecurityEvents.Validation.SecurityEventTokenValidationStates.Parsed}

The compact serialization was taken apart and its header and claims parsed\. The parsed
values are NOT yet trustworthy \- parsing establishes shape, only a verified signature
establishes authorship\.

###### `TypVerified` 2 {#Abblix.SecurityEvents.Validation.SecurityEventTokenValidationStates.TypVerified}

The "typ" header names a SET \(RFC 8417 Section 2\.3\)\.

###### `ExpAbsenceVerified` 4 {#Abblix.SecurityEvents.Validation.SecurityEventTokenValidationStates.ExpAbsenceVerified}

The claims carry no "exp" \- the marker whose absence separates a SET from the ID and
access tokens it could be confused with \(RFC 8417 Sections 4\.1 and 4\.2\)\.

###### `EventsPresent` 8 {#Abblix.SecurityEvents.Validation.SecurityEventTokenValidationStates.EventsPresent}

The "events" claim is present, is a JSON object, and holds at least one statement
\(RFC 8417 Section 2\.2\)\.

###### `IssuerAccepted` 16 {#Abblix.SecurityEvents.Validation.SecurityEventTokenValidationStates.IssuerAccepted}

The "iss" claim names an issuer this receiver accepts events from\.

###### `SignatureVerified` 32 {#Abblix.SecurityEvents.Validation.SecurityEventTokenValidationStates.SignatureVerified}

The signature was verified against the issuer's keys\. From here on the claims are the
issuer's words, not just well\-formed JSON\.

###### `AudienceVerified` 64 {#Abblix.SecurityEvents.Validation.SecurityEventTokenValidationStates.AudienceVerified}

The "aud" claim names this receiver\.

###### `IssuedAtVerified` 128 {#Abblix.SecurityEvents.Validation.SecurityEventTokenValidationStates.IssuedAtVerified}

The "iat" claim is present and within the receiver's freshness window\.

###### `PayloadsDeserialized` 256 {#Abblix.SecurityEvents.Validation.SecurityEventTokenValidationStates.PayloadsDeserialized}

Every event payload was deserialized through the registry \- into its registered model or
the raw passthrough\.
