#### [Abblix\.Oidc\.Server](https://www.abblix.com/en/docs/api/abblix-oidc-server 'index')
### [Abblix\.Oidc\.Server\.Features\.Storages\.Proto](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.Proto 'Abblix\.Oidc\.Server\.Features\.Storages\.Proto')

## RateLimitState Class

Represents the rate limiting state for a user code or IP address

```csharp
public sealed class RateLimitState : Google.Protobuf.IMessage<Abblix.Oidc.Server.Features.Storages.Proto.RateLimitState>, Google.Protobuf.IMessage, System.IEquatable<Abblix.Oidc.Server.Features.Storages.Proto.RateLimitState>, Google.Protobuf.IDeepCloneable<Abblix.Oidc.Server.Features.Storages.Proto.RateLimitState>, Google.Protobuf.IBufferMessage
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → RateLimitState

Implements [Google\.Protobuf\.IMessage&lt;](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.imessage-1 'Google\.Protobuf\.IMessage\`1')[RateLimitState](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.Proto.RateLimitState 'Abblix\.Oidc\.Server\.Features\.Storages\.Proto\.RateLimitState')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.imessage-1 'Google\.Protobuf\.IMessage\`1'), [Google\.Protobuf\.IMessage](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.imessage 'Google\.Protobuf\.IMessage'), [System\.IEquatable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')[RateLimitState](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.Proto.RateLimitState 'Abblix\.Oidc\.Server\.Features\.Storages\.Proto\.RateLimitState')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1'), [Google\.Protobuf\.IDeepCloneable&lt;](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.ideepcloneable-1 'Google\.Protobuf\.IDeepCloneable\`1')[RateLimitState](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.Proto.RateLimitState 'Abblix\.Oidc\.Server\.Features\.Storages\.Proto\.RateLimitState')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.ideepcloneable-1 'Google\.Protobuf\.IDeepCloneable\`1'), [Google\.Protobuf\.IBufferMessage](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.ibuffermessage 'Google\.Protobuf\.IBufferMessage')
### Fields

## RateLimitState\.BlockedUntilFieldNumber Field {#Abblix.Oidc.Server.Features.Storages.Proto.RateLimitState.BlockedUntilFieldNumber}

Field number for the "blocked\_until" field\.

```csharp
public const int BlockedUntilFieldNumber = 4;
```

#### Field Value
[System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')

## RateLimitState\.FailureCountFieldNumber Field {#Abblix.Oidc.Server.Features.Storages.Proto.RateLimitState.FailureCountFieldNumber}

Field number for the "failure\_count" field\.

```csharp
public const int FailureCountFieldNumber = 1;
```

#### Field Value
[System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')

## RateLimitState\.FirstFailureAtFieldNumber Field {#Abblix.Oidc.Server.Features.Storages.Proto.RateLimitState.FirstFailureAtFieldNumber}

Field number for the "first\_failure\_at" field\.

```csharp
public const int FirstFailureAtFieldNumber = 2;
```

#### Field Value
[System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')

## RateLimitState\.LastFailureAtFieldNumber Field {#Abblix.Oidc.Server.Features.Storages.Proto.RateLimitState.LastFailureAtFieldNumber}

Field number for the "last\_failure\_at" field\.

```csharp
public const int LastFailureAtFieldNumber = 3;
```

#### Field Value
[System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')
### Properties

## RateLimitState\.BlockedUntil Property {#Abblix.Oidc.Server.Features.Storages.Proto.RateLimitState.BlockedUntil}

The timestamp until which the user code/IP is blocked \(null if not blocked\)

```csharp
public Google.Protobuf.WellKnownTypes.Timestamp BlockedUntil { get; set; }
```

#### Property Value
[Google\.Protobuf\.WellKnownTypes\.Timestamp](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.wellknowntypes.timestamp 'Google\.Protobuf\.WellKnownTypes\.Timestamp')

## RateLimitState\.FailureCount Property {#Abblix.Oidc.Server.Features.Storages.Proto.RateLimitState.FailureCount}

The total number of failed verification attempts

```csharp
public int FailureCount { get; set; }
```

#### Property Value
[System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')

## RateLimitState\.FirstFailureAt Property {#Abblix.Oidc.Server.Features.Storages.Proto.RateLimitState.FirstFailureAt}

The timestamp of the first failure in the current window

```csharp
public Google.Protobuf.WellKnownTypes.Timestamp FirstFailureAt { get; set; }
```

#### Property Value
[Google\.Protobuf\.WellKnownTypes\.Timestamp](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.wellknowntypes.timestamp 'Google\.Protobuf\.WellKnownTypes\.Timestamp')

## RateLimitState\.LastFailureAt Property {#Abblix.Oidc.Server.Features.Storages.Proto.RateLimitState.LastFailureAt}

The timestamp of the most recent failure

```csharp
public Google.Protobuf.WellKnownTypes.Timestamp LastFailureAt { get; set; }
```

#### Property Value
[Google\.Protobuf\.WellKnownTypes\.Timestamp](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.wellknowntypes.timestamp 'Google\.Protobuf\.WellKnownTypes\.Timestamp')
