reason = sprintf( '%d requests in %d seconds', $requestCount, $windowSeconds, ); parent::__construct( self::class, [ 'requestCount' => $requestCount, 'windowSeconds' => $windowSeconds, 'endpoint' => $endpoint, ], $tenantId, ); } public function getIpAddress(): string { return $this->ipAddress; } public function getRequestCount(): int { return $this->requestCount; } public function getWindowSeconds(): int { return $this->windowSeconds; } public function getEndpoint(): ?string { return $this->endpoint; } public function getDeviceFingerprint(): ?string { return null; } public function getUserAgent(): ?string { return null; } public function getRequestPath(): ?string { return $this->endpoint; } public function getRequestMethod(): ?string { return null; } public function getUserId(): ?string { return null; } public function getReason(): string { return $this->reason; } public function getSeverity(): SecurityEventSeverity { return SecurityEventSeverity::ERROR; } }